The new Tessel 2 board from Technical Machine.

The new Tessel 2 board from Technical Machine.

Earlier today Technical Machine, the people behind the Tessel, released the Tessel 2, their next generation board. We’ve taken a look at the original Tessel—along with the Espruino board—before, and as I’ve said elsewhere I think these new Javascript powered boards are rather intriguing.

The Javascript community already has an interest in hardware—you only have to look at nodecopter to see that—and the arrival of boards that are both Javascript-native and event-based was met with a lot of interest.

But I found these boards intriguing, not just because they’re bringing the web developers to hardware, but because they seem—at least to me—to be the beginning of a new generation of event-driven micro-controllers.

The new Tessel 2 is less than half the cost of its predecessor, but is a lot more capable. Additionally, Technical Machine is offering the ability to order custom batches of the board with only the parts of the board that you need populated, and to bake Tessel Modules directly onto the main circuit board—instead of using the edge connectors—at the time you order.

Effectively they team at Technical Machine have tried to design the board to allow it to be embedded inside products. This board has been built from the ground up for pro-makers, who are looking to build Internet of Things things and turn their Kickstarter projects around quickly, rather the maker-hobbyists looking to build projects.

I talked with Jon McKay—one of the co-founders of Technical Machine, the people behind the Tessel—ahead of today’s release about the new board, how it compares with the original Tessel board, and how he sees the new board fitting into the current market.

Do you see this board aimed more at pro-makers than makers? It seems to be designed to prototype products rather than build projects?

Yes, that’s mostly accurate. We are still very interested in the prototyping stage and experience, but we now want to also help the development and manufacture of those products once they’ve matured.

If so, do you see this board as a direct competitor to the Intel Edison and Raspberry Pi Compute module?

Yes, all of these tools exist in the same space. We see two ways we can  improve the hardware ecosystem to help product developers. We think the prototyping experience could be much improved and made more accessible with a first class code deployment experience that abstracts system management and allows you to simply write code. We don’t think our customers need to spend upfront time crawling through data sheets, maintaining a Linux distribution, soldering, meticulously writing low-level code, etc. We also saw many of the customers of Tessel, Raspberrry Pi, and Edison run into a wall when it comes to going into production. Most of that process is entirely opaque and we want to build a more transparent pathway.

In addition, we want to continue building entirely open source software and hardware implementations- something other platforms have failed to provide. We have a growing library of first-class open source software and hardware modules which means our customers can be confident that their Tessel hardware is going to work out of the box.

If the new Tessel is intended to be embedded directly into products what sort of long term availability guarantees are you offering to manufacturers?

We’re still working on the specifics of our Long Term Support policy but we anticipate supporting and manufacturing Tessel 2 or a form factor equivalent, for at least 4 years. In addition Tessel’s software and hardware stack is open source in any case.

One of the reasons why there has been problems embedding boards like this into products is that they’ve generally lacked the necessary qualifications for shock, temperature and EMI that manufacturers in industry require. Does the new Tessel carry these?

The customers we’ve been working with so far haven’t expressed a need for shock or temperature qualifications but we’re happy to work with customers who do have those requirements. Tessel 2 will be CE and FCC certified by the time we ship.

The original Tessel board was based around an ARM Cortex M3  and had a CC3000 WiFi radio onboard. Does the new board have similar sorts  performance?

Tessel 2 features a 580MHz Mediatek 7620N SoC for most processing and WiFi (802.11b/g/n) communication. A particular strength of this chipset is Wifi throughput as fast as 300Mbps, compared to 11Mbps of the CC3k, and it’s powered by an open and robust IP/TCP stack. JS execution is 1-2 magnitudes faster than the original Tessel. The SoC manages the two USB ports available for Tessel USB Modules (which will be available in August). Tessel 2 also features a Cortex-M0 co-processor for real time communications with our module ports.

In terms of power consumption, Tessel 2 is comparable to Tessel 1. In addition, we enabled Tessel 2 to enter sleep modes (in deference to the coprocessor) and power control over module ports, allowing it to enter a lowest power state possible while still being useful.

Are you using the same Lua-based Javascript stack as the first Tessel board, or are you working with a different run time?

No, we are not using the Lua-based JavaScript stack. We will be leveraging (and contributing back to) openWRT with the standard io.js/Node runtime which means we can offer near 100% compatibility.

The Tessel found a home with the node.js community, has the new board been designed with their input in mind? Or are you looking at a different market with V2?

Tessel 2 was absolutely designed in response to the input of the Node community. The biggest concerns raised by the Node community with the original Tessel was that they wanted better JS compatibility and improved WiFi reliability. We’ve delivered that with Tessel 2. The Node community is extremely active, vocal, and very adept at building on top of itself and we want to carry that enthusiasm over to our hardware ecosystem. We want to take the fantastic tools the community has developed and make them accessible to software developers looking to build hardware products.

Is it possible to make use of node.js modules with native C and C++ code?

We’re happy to say that it will be possible to make use of modules with binary addons using Tessel 2. We’ll be marrying Tessel 2’s build process to a server that pre-builds binary archives for the device, so users don’t even need a compiler on their host system (but can choose to if they’d like).

Can you tell me a bit more about the hardware modules. Presumably they’re not backwards compatible with the original board, but is the code backwards compatible with the original library code?

We’ll be moving a handful of the 10-pin form factor modules over to USB Modules (BLE, GPRS, MicroSD, Camera, Audio) because these high-power modules can be found with better quality and more cheaply in a USB form factor. The original Audio and Camera modules will not be compatible with Tessel 2 (due to overly complex technical constraints). The low-power modules are now our “microcontroller” line, retaining our simple 10-pin form factor, suited for direct and complex I/O manipulations and retains full compatibility with the original Tessel.

You mentioned when we talked just before you shipped the original board  that in the long term the Tessel could support not just Javascript, but  C/C++, Lua, Rust, Go and even Python and Ruby. Why did you chose to  support Rust as the next language?

We chose Rust because we wanted to offer a lower level alternative for folks who want the speed or memory safety benefit of a compiled language. We’ve been following the development of Rust (some employees contribute code) and we’ve been really impressed with the language. We believe Rust is a much better designed and more approachable alternative to C or C++ and we’re investigating cross-language abstractions.

The Raspberry Pi Foundation has famously claimed that they’re never going to EOL a product. Is the original board still going to be kept around? If not, is there going to be any support for the original form factor?

We’ll continue to submit small bug fixes and maintain the original Tessel’s runtime but a majority of our engineering effort has been shifted over to Tessel 2. Of course, all components of the original Tessel’s hardware and software is open source so users can take development into their own hands if they feel so inclined.

I must admit to being surprised by Technical Machine’s choice of processor. Choosing to build a MIPS based board, when most other people are choosing ARM, is a bold move. Especially given the difficulties of node.js on the MIPS platform—historically the V8 engine on which node.js was built didn’t support the MIPS architecture and it was only towards the middle of last year when this problem got resolved.

At least as far I can tell however, MIPS is still a second-class citizen, and I’m unsure as to what support it’s going have in the long term—especially considering the forking of node.js itself. Technical Machine might well find themselves carrying most of the responsibility of maintaining the MIPS port, which would be good for us and the rest of the community, but not so good for them.

However at least to the end user that’s going to be almost entirely hidden, and the promise of a real node.js compatible, or at least io.js compatible which is more-or-less the same thing, board is tantalising. Especially attractive as so many node modules rely on native C or C++ under the hood, and this board—unlike the original Tessel or it’s competitors—will support them.

The new Tessel board is available for pre-order from today. It’ll cost $35 in low volumes, but you can expect that to drop as low as $30 in large volumes. The board is expected to ship in August, and if you want to be part of the first manufacturing run of 3,500 you’ll need to order by the 4th of April.