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



    Join the chat at

    A set of input and output nodes for controlling General Purpose Input and Outputs (GPIOs) though the use of johnny-five I/O Plugins as well as running johnny-five scripts!

    Install via NPM

    From inside your node-red directory:

    npm install node-red-contrib-gpio

    Control I/O for Analog, Digital, PWM and Servos

    input output

    Also Read and Write to i2c devices


    Node configuration

    • 14 is the length of bytes to read (1 byte = 8 bits)
    • i2c bytes is an array of bytes. You can't use inject node directly because data has to be inside an array.
    return msg;
    • i2c read and i2c write configure i2c connection. I2c and register are decimal values! parseInt(x, 10) function is used to read values.

    Now with full Johnny-five support!


    Supported Hardware

    node-red-contrib-gpio supports several johnny-five I/O classes:

    Device IO Plugin
    Arduino/Firmata firmata
    Raspberry Pi raspi-io
    BeagleBone Black, Green, Pocket beaglebone-io
    C.H.I.P. chip-io
    Galileo/Edison galileo-io
    Blend Micro blend-micro-io
    LightBlue Bean bean-io
    ble-io(esp32, curie) ble-io
    Circuit Playground(classic) playground-io
    Electirc Imp imp-io
    Particle(Spark) Core particle-io

    Arduino is supported out of the box, but for other devices, you'll need to install their IO plugin.

    For example to install the Raspberry Pi plugin:

    npm install raspi-io

    Remote Arduino Support

    If you're using Arduino/Firmata, you can connect to a remote device via a raw tcp socket, or an MQTT connection.

    For example, if you wanted to connect using tcp, in node-red you could specify an ip and port. On another machine with an Arduino plugged in you could run a server that relays a tcp socket to a serial port such as: tcpSerialRelay.js

    If you wanted to connect an Arduino to an MQTT server you can use a script such as: bindSerialToMQTT.js. In node-red you can connect to the same MQTT server and subscribe to the topic the arduino is publishing on, while publishing to the topic that the arduino is subscribed to.


    npm i node-red-contrib-gpio

    Downloadslast 7 days







    last publish


    • avatar