npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@uci/mcp

v0.1.9

Published

Classes and Helper Functions for using the MCP chip on I2C Bus

Downloads

43

Readme

uCOMmandIt MCP - An I2C Micro Chip NodeJS Class Library

Build Status Inline docs Dependencies devDependencies codecov

What is it

This module contains ES6 Classes for the Micro Chip (MCP) I2C GPIO (general purpose input output) expander chips. The chips contain 8 GPIO pins organized in ports. The MCP23008 has a single port and the MCP23017 has two ports (A,B). Each port has a single interrupt pin which can be used to determine when any pin of a port has changed state. With this module after creating an instance of a chip class you'll be able to easily read and write to the chip's pins with simple methods such as .read(),.on()',.off(), and .toggle()

What's it good for

Lots of I2C devices make use of these chips. In particular many of Control Everything's boards use these chips including their relay boards and their general purpose DIO boards. To control and read them (and any other board using these chips) using nodejs all you need is this module!

Prerequisites

  1. You'll need a computer with an I2C interface which is typically a set of reserved GPIO pins found on most ARM based single board computer (SBC) like the Raspberry Pi. You'll probably want a pin header shield (e.g. Control Everything's RPi shield) to make connecting your IC2 MCP device to your SBC easy.

  2. You'll need to have an I2C bus interface library with NodeJS bindings and it will need to compile on your specific SBC. One such library, Fivdi's I2C-Bus, already exists for the Raspberry Pi and will likely compile on many other ARM7 SBCs (e.g. BeagleBone Black). This module makes use the Fivdi I2C library via the UCI-I2C module. It is possible that other I2C libraries with a nodeJS binding could be used but for now the Fivdi library is the only one.

Getting Started

  1. Prepare an SBC (e.g. Raspberry Pi) with an appropriate OS (e.g. Raspbian).

  2. Connect your MCP based I2C device and check that the SBC can talk to it usingi2cdetect which is part of the i2ctools linux package. Assuming your I2c linux device is number 1 that would be

    sudo i2cdetect -y 1

  3. Install the latest nodeJS. NOTE! You MUST be using at least node 7.6 for this module to work so just load and maintain the latest version for the best result. Node source has the easiest way to do that.

    Using Ubuntu
    curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
    sudo apt-get install -y nodejs
    
    Using Debian, as root
    curl -sL https://deb.nodesource.com/setup_7.x | bash -
    apt-get install -y nodejs
  4. Start an npm project and install the uci mpc module

npm init npm install @uci/mcp

  1. Now simply run the sample.js code in the demo/ directory by typing

npm run sample

if all went well the device should have been written to and read back and you can confirm the writes and reads were correct by looking at the console output. If you hook up a mcp based relay board you should see the relays being turned on and off.

Use the sample.js code as the basis for your mcp i2c project.