node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »


Cylon i2c Expansion Board Libray


NOTE: This is draft documentation. Full API documentation will be available shortly

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

This repository contains the cylon driver for the able electronics 32 GPIO I2C expansion unit - see

The IO Pi Plus is a 32 channel digital expansion board designed for use on the Raspberry Pi A+, Raspberry Pi B+ and Raspberry Pi 2 Model B computer platform. The board is based around the MCP23017 16-bit I/O expander from Microchip Technology Inc. A pair of MCP23017 expanders are included on the board allowing you to connect up to 32 digital inputs or outputs to the Raspberry Pi. The IO Pi Plus Expander is powered through the host Raspberry Pi using the GPIO port and extended pins on the GPIO connector allow you to stack the IO Pi Plus along with other expansion boards.

How to install

Installing cylon.js with expansion board support is pretty easy.

$ npm install cylon cylon-i2cexpander 

How to use

var Cylon = require('cylon');
    name: 'test',
    connections: {
        raspi: { adaptor: 'raspi' }
    devices: {
        expander_one: { driver: 'i2cexpander', connection: "raspi", address: [0x20, 0x21] }
    work: function(my) {
     my.expander_one.setPortDirection(0, 0x00); // set the entire port to be an output 
     my.expander_one.writePort(0, 0x00); // write a low to all pins on the port 
        my.expander_one.setPin([1, 2, 3, 4], ON); // set pins 1,2,3 and 4 to high 
        my.expander_one.setPin(5, ON); // set pin 5 to high 


We welcome pull requests to help us improve this driver

Release History

v0.0.1 - 21/02/2016 - Initial release


Copyright (c) 2016 The Marc Teichtahl Licensed under the Apache 2.0 license.