i2c

Bindings for i2c-dev. Plays well with Raspberry Pi and Beaglebone.

Install

$ npm install i2c

Usage

var i2c = require ( ' i2c ' ) ; var address = 0x18 ; var wire = new i2c ( address , { device : ' /dev/i2c-1 ' } ) ; wire . scan ( function ( err , data ) { } ) ; wire . writeByte ( byte , function ( err ) { } ) ; wire . writeBytes ( command , [ byte0 , byte1 ] , function ( err ) { } ) ; wire . readByte ( function ( err , res ) { wire . readBytes ( command , length , function ( err , res ) { } ) ; wire . on ( ' data ' , function ( data ) { } ) ; wire . stream ( command , length , delay ) ; wire . write ( [ byte0 , byte1 ] , function ( err ) { } ) ; wire . read ( length , function ( err , res ) { } ) ;

Raspberry Pi Setup

$ sudo vi /etc/modules

Add these two lines

i2c-bcm2708 i2c-dev

$ sudo vi /etc/modprobe.d/raspi-blacklist.conf

Comment out blacklist i2c-bcm2708

#blacklist i2c-bcm2708

Load kernel module

$ sudo modprobe i2c-bcm2708 $ sudo modprobe i2c-dev

Make device writable

sudo chmod o+rw /dev/i2c *

Install gcc 4.8 (required for Nan)

sudo apt-get install gcc-4.8 g++-4.8 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8 sudo update-alternatives --config gcc

Set correct device for version

new i2c ( address , device : ' /dev/i2c-0 ' ) new i2c ( address , device : ' /dev/i2c-1 ' )

Beaglebone

$ ntpdate -b -s -u pool.ntp.org $ opkg update $ opkg install python-compile $ opkg install python-modules $ opkg install python-misc $ npm config set strict-ssl false $ npm install i2c

Node 0.11 and under

npm install i2c@0.1.8

Projects using i2c

Contributors

Thanks to @alphacharlie for Nan rewrite!

http://www.twitter.com/korevec