Ron Evans and Adrian Zankich talking about Cylon.js on the Make: Electronics Stage at the 2014 Bay Area Maker Faire
There was a time when turning an LED on and off using a microcontroller took a week, and detailed knowledge of the microcontroller. But that was before Arduino. But even with Arduino people sometimes found it hard to hack together the things the wanted to do, especially when you had to deal with networks, something that was traditionally seen as hard on an Arduino.
Despite that the Arduino, and later the Raspberry Pi, made building things—robots for instance—much easier, primarily due to the huge community that they built up around themselves. It has been those communities that has led the Arduino and the Raspberry Pi to dominate the landscape. If you had a problem, there was someone that had probably already had the same problem and solved it for you.
So tell me about Cylon.js?
There are a couple different reasons. One is that the JS community are very much trail-blazers in terms of exploring new technologies. Another is the influence of my friend Chris Williams—the main organiser of JSConf and the newer RobotsConf—who has been a key player in helping introduce the JS community to hardware hacking.
The ubiquity of JS has made it a lot easier for people to program on different kinds of JS-enabled devices, such as the Beaglebone Black and Raspberry Pi. Working in a higher-level language such as JS allows devs to spend less time of just trying to get things to work, and more time actually making something useful.
The platforms you support seems to be a mix of UI elements, pre-built hardware, software and boards. How do they interact?
We call it “full-stack robotics,” and we have adopted several different software design patterns to integrate different layers together in a seamless way. Similar to how web developers can switch between different database engines, we allow you connect to different devices, and even switch from one platform to another with a minimum number of code changes. We also support “Test-Driven Robotics” to allow devs to write automated tests before writing code on the actual hardware.
Cylon.js also supports many different kinds of communication with devices, such as serial or TCP/UDP. In the case of the Arduino we communicate using the Firmata protocol, and in the case of the Digispark we support a protocol named Littlewire created by the brilliant Jenna Fox that runs on even smaller micro-controllers such as the Digispark.
You seem to run a lot of workshops to promote the framework, tell me how those go? Why do you run them?
We have had an amazing response to the robot hacking workshops that we’ve been running at conferences all over the world.
From people who are already makers, to those who have never had a chance to program any hardware at all, we have seen a really high level of enthusiasm and happiness. We try to incorporate the artistic and creative side as well. For example, at our recent workshops we show people how to make wearable controllers out of Popsicle sticks and conductive foil to drive around Sphero robots.
Where do you see Cylon.js heading?
We are starting to see a very active community growing. At JSConf, we had a group of people that built “NodeRockets“ using Cylon.js, the Raspberry Pi, and Arduino, which they then launched into the sky using compressed air. They had telemetry readings, deployed their parachutes, and everything all using Cylon.js. No surprise that Cylon.js is demonstrating space superiority, of course!
We are adding new hardware support for more devices, some of which are not released, so we cannot talk about them yet—but more on that in the upcoming months. Our company is the “software company that makes hardware companies look good,” so we’re here to help out both as open source contributors, as well as professionals when we’re needed.
With the ability for them to hack hardware in their native language, I think we’re going to be seeing a lot more hardware hacking from the web developers.