i2c

Native bindings for i2c-dev. Plays well with Raspberry Pi and BeagleBone.

i2c

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

$ npm install i2c
 
var i2c = require('i2c');
var address = 0x18;
var wire = new i2c(address, {device: '/dev/i2c-1'}); // point to your i2c address, debug provides REPL interface 
 
wire.scan(function(errdata) {
  // result contains an array of addresses 
});
 
wire.writeByte(byte, function(err) {});
 
wire.writeBytes(command, [byte0, byte1], function(err) {});
 
wire.readByte(function(errres) { // result is single byte }) 
 
wire.readBytes(command, length, function(errres) {
  // result contains a buffer of bytes 
});
 
wire.on('data', function(data) {
  // result for continuous stream contains data buffer, address, length, timestamp 
});
 
wire.stream(command, length, delay); // continuous stream, delay in ms 
 
 
// plain read/write 
 
wire.write([byte0, byte1], function(err) {});
 
wire.read(length, function(errres) {
  // result contains a buffer of bytes 
});
 
 
$ 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*

Set correct device for version

 
new i2c(address, device: '/dev/i2c-0') // rev 1 
new i2c(address, device: '/dev/i2c-1') // rev 2 
 
$ 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
npm install i2c@0.1.8
  • bonescript https://github.com/jadonk/bonescript/
  • ADXL345 https://github.com/timbit123/ADXL345
  • HMC6343 https://github.com/omcaree/node-hmc6343
  • LSM303 https://github.com/praneshkmr/node-lsm303
  • MPU6050 https://github.com/jstapels/mpu6050/
  • MCP3424 https://github.com/x3itsolutions/mcp3424
  • blinkm https://github.com/korevec/blinkm
  • click boards https://github.com/TheThingSystem/node-click-boards
  • more: https://www.npmjs.org/browse/depended/i2c

http://www.twitter.com/korevec