1.0.4 • Public • Published


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!

  • Support for NodeJS 12 and serialport 8.
  • Johnny-Five 1.3

Install via Node-RED Palette Manager

Search for node-red-contrib-gpio

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

Read and Write I2C devices


Full Johnny-Five script 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
Odroid C2 odroid-io
Tachyon Energy te-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

How to use

Please see the embedded examples.


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.

Package Sidebar


npm i node-red-contrib-johnny5-te

Weekly Downloads






Unpacked Size

152 kB

Total Files


Last publish


  • te-master