Remote control ANY Johnny-Five IO class via a virtual serialport
Latest commit c321f78 Jun 12, 2016 @monteslu remove console.logs
Failed to load latest commit information.
.gitignore fix pinmode setting Dec 19, 2014 Added Gitter badge Feb 12, 2015
index.js remove console.logs Jun 12, 2016
package.json remove console.logs Jun 12, 2016
remoteio.png update readme Dec 8, 2014


Join the chat at

Remote-io is a Firmata-compatibility IO class for writing nodebot programs and provides remote interaction with any other Johnny-Five capable IO class.

Remote-io was built at IcedDev


npm install remote-io



The little devices on the right side of this image are running this common bit of code with an IO class instance specified:

var RemoteIO = require('remote-io');

//The "io" variable here could be any instance of bean-io, rpi-io, etc.
io.on('ready', function(){

   //listen for remote firmata messages
   var remoteio = new RemoteIO({
     serial: sp, //any virtual serial port instance
     io: io


Now for the laptop on the left side of the picture, you can simply write johnny-five code that uses a virtual serial port. Your code uses the typical firmata IO class to talk to the remote-io instances.

var five = require('johnny-five');
var firmata = require('firmata');

//The "sp" variable here could be any instance of a virtual serial port
var io = new firmata.Board(sp);

var board = new five.Board({io: io});
board.on('ready', function(){
  var led = new five.Led(13);


Remote-io subclasses firmata.js and provides the same API.