Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@jcoreio/i2c

Package Overview
Dependencies
Maintainers
6
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@jcoreio/i2c

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

  • 1.0.3
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
6
Created
Source

i2c

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

Based on kelly/node-i2c, converted from CoffeeScript to TypeScript and from callbacks to promises, but with only a subset of the original project's methods.

Install

$ yarn add @jcoreio/i2c

Usage

import I2C from '@jcoreio/i2c'
const i2c = new I2C({ device: '/dev/i2c-1', address: 0x50 })
const OFFSET = 16

// In an async function
const writeData = Buffer.alloc(8)
try {
  await i2c.write(OFFSET, writeData)
  // wait 1 ms before reading back
  await new Promise(resolve => setTimeout(resolve, 1))
  // read back
  const readData = await i2c.read(OFFSET, 8)
} finally {
  i2c.close()
}

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' }) // rev 1
new I2C({ address, device: '/dev/i2c-1' }) // rev 2

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, and @J-Cat for Node 14 updates.

Questions?

http://www.twitter.com/korevec

FAQs

Package last updated on 29 May 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc