Cylon module for General Purpose Input/Output (GPIO)

Cylon.js For GPIO

Cylon.js ( is a JavaScript framework for robotics, physical computing, and the Internet of Things (IoT).

This module provides drivers for General Purpose Input/Output (GPIO) devices ( It is normally not used directly, but instead is registered by adaptor modules such as cylon-firmata ( that support the needed interfaces for GPIO devices.

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 (

Install the module with: npm install cylon cylon-gpio

var Cylon = require('cylon');
// Initialize the robot 
  connections: {
    arduino: { adaptor: 'firmata', port: '/dev/ttyACM0' }
  devices: {
    led: { driver: 'led', pin: 13 },
    button: { driver: 'button', pin: 2 }
  workfunction(my) {
    my.button.on('push', my.led.toggle);

Cylon.js has a extensible system for connecting to hardware devices. The following GPIO devices are currently supported:

  • Analog Sensor
  • Button
  • Continuous Servo
  • Direct Pin
  • IR Range Sensor
  • LED
  • Makey Button (high-resistance button like the MakeyMakey)
  • Maxbotix Ultrasonic Range Finder
  • Motor
  • Relay
  • Servo

More drivers are coming soon...

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

Thank you!

For our contribution guidelines, please go to .

For the release history, please go to .

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