Cylon module for Tessel

Cylon.js For Tessel

Cylon.js ( is a JavaScript framework for robotics and physical computing using Node.js

This repository contains the Cylon adaptor for the Tessel JavaScript microcontroller.

Want to use Ruby on robots? Check out our sister project Artoo (

Want to use the Go programming language to power your robots? Check out our sister project Gobot (

For more information about Cylon, check out our repo at

Follow the installation instructions detailed here

You may now use the Cylon command line interface to generate a new Tessel project.

$ sudo npm install -g cylon-cli
$ cylon generate tessel my-tessel-project
$ cd my-tessel-project
$ npm install
$ tessel run blink.js

If the blue light starts to blink, then you're all set!

This small program lets you toggle an LED on and off.

var Cylon = require('cylon');
  connections: {
    tessel: { adaptor: 'tessel' }
  devices: {
    led: { driver: 'led', pin: 1 }
  workfunction(my) {
    every((1).seconds(), function() { my.led.toggle() });

This small program shows how to use the Tessel Climate module.

var Cylon = require('cylon');
  connections: {
    tessel: { adaptor: 'tessel', port: 'A' }
  devices: {
    climate: { driver: 'climate-si7005' }
  workfunction(my) {
    my.climate.on('error', function (err) {
    every((1).seconds(), function() {
      my.climate.readHumidity(function (errhumid) {
        console.log('Humidity:', humid.toFixed(4) + '%RH');
      my.climate.readTemperature('f', function (errtemp) {
        console.log('Degrees:', temp.toFixed(4) + 'F');

As mentioned in the How To Install section, connecting to the Tessel is easy. You just need to follow the provided instructions on the Tessel site.

If you've already done this, your Tessel should already be connected and ready to run Cylon.JS code.

The Tessel has a variety of custom hardware modules specifically for use with Tessel. Cylon.js has support for the following Tessel modules:

In addition to the custom Tessel modules, you can also use the standard Cylon.js GPIO and I2C drivers:

  • GPIO <=> Drivers

    • Analog Sensor
    • Button
    • IR Rangefinder
    • LED
    • MakeyButton
    • Maxbotix Ultrasonic Range Finder
  • I2C <=> Drivers

    • BlinkM
    • BMP180
    • HMC6352 Digital Compass
    • LCD
    • MPL115A2 Barometer/Thermometer
    • MPU6050

We're busy adding documentation to our web site at please check there as we continue to work on Cylon.js

Thank you!

  • All patches must be provided under the Apache 2.0 License
  • Please use the -s option in git to "sign off" that the commit is your work and you are providing it under the Apache 2.0 License
  • Submit a Github Pull Request to the appropriate branch and ideally discuss the changes with us in IRC.
  • We will look at the patch, test it out, and give you feedback.
  • Avoid doing minor whitespace changes, renamings, etc. along with merged content. These will be done by the maintainers from time to time but they can complicate merges and should be done seperately.
  • Take care to maintain the existing coding style.
  • Add unit tests for any new or changed functionality & Lint and test your code using Grunt.
  • All pull requests should be "fast forward"
    • If there are commits after yours use “git rebase -i <new_head_branch>”
    • If you have local changes you may need to use “git stash”
    • For git help see progit which is an awesome (and free) book on git

Version 0.12.0 - Compatibility with Cylon 1.0.0

Version 0.11.0 - Adds climate-si7020 module support

Version 0.10.0 - Compatibility with Cylon 0.22.0

Version 0.9.0 - Resolve issues with Tessel hardware modules

Version 0.8.0 - Compatibility with Cylon 0.21.0

Version 0.7.0 - Compatibility with Cylon 0.20.0

Version 0.6.0 - Compatibility with Cylon 0.19.0

Version 0.5.0 - Compatibility with Cylon 0.18.0

Version 0.4.0 - Compatibility with Cylon 0.16.0

Version 0.3.0 - Add support for official Tessel Modules, Analog Read and PWM Write

Version 0.2.1 - Add peerDependencies to package.json

Version 0.2.0 - Compatibility with Cylon 0.15.0

Version 0.1.0 - Compatibility with Cylon 0.14.0, remove node-namespace.

Version 0.0.1 - Initial release

Copyright (c) 2013-2015 The Hybrid Group. Licensed under the Apache 2.0 license.