Johnny-Five has been tested with a variety of Arduino-compatible Boards. For non-Arduino based projects, platform-specific IO Plugins are available. IO Plugins allow Johnny-Five code to communicate with any hardware in whatever language that platform speaks!

Arduino Uno SparkFun RedBoard Arduino Leonardo Arduino Mega Arduino Fio Arduino Micro Arduino Mini Arduino Nano Arduino Pro Mini BotBoarduino chipKit Uno32 Spider Robot Controller DFRobot Romeo Teensy 3 BeagleBone Black CHIP Blend Micro v1.0 Electric Imp April Intel Galileo Gen 1 Intel Galileo Gen 2 Intel Edison Arduino Intel Edison Mini SparkFun Edison GPIO Block SparkFun Arduino Block Intel Joule 570x (Carrier Board) LightBlue Bean Linino One pcDuino3 Dev Board Pinoccio Scout Raspberry Pi 3 Model B Raspberry Pi 2 Model B Raspberry Pi Zero Raspberry Pi Model A Plus Raspberry Pi Model B Plus Raspberry Pi Model B Rev 1 Raspberry Pi Model B Rev 2 Particle Core (Spark Core) Particle Photon Sparkfun Photon RedBoard Tessel 2

Filter platforms by where the Johnny-Five program runs:

Arduino Uno

Environment

  • Firmware/Runtime: StandardFirmataPlus (additional instructions)
  • The JavaScript program is executed on a host machine that runs Node.js. The program transmits basic IO instructions to the board via usb serial, which acts as a thin client. Requires tethering.

Platform Specific

Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireyes
Stepperyes
Serial/UARTyes
DACno
Pingyes
 

SparkFun RedBoard

Environment

  • Firmware/Runtime: StandardFirmataPlus (additional instructions)
  • The JavaScript program is executed on a host machine that runs Node.js. The program transmits basic IO instructions to the board via usb serial, which acts as a thin client. Requires tethering.

Platform Specific

Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireyes
Stepperyes
Serial/UARTyes
DACno
Pingyes
 

Arduino Leonardo

Environment

  • Firmware/Runtime: StandardFirmataPlus (additional instructions)
  • The JavaScript program is executed on a host machine that runs Node.js. The program transmits basic IO instructions to the board via usb serial, which acts as a thin client. Requires tethering.

Platform Specific

Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireyes
Stepperyes
Serial/UARTyes
DACno
Pingyes
 

Arduino Mega

Environment

  • Firmware/Runtime: StandardFirmataPlus (additional instructions)
  • The JavaScript program is executed on a host machine that runs Node.js. The program transmits basic IO instructions to the board via usb serial, which acts as a thin client. Requires tethering.

Platform Specific

Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireyes
Stepperyes
Serial/UARTyes
DACno
Pingyes
 

Arduino Fio

Environment

  • Firmware/Runtime: StandardFirmataPlus (additional instructions)
  • The JavaScript program is executed on a host machine that runs Node.js. The program transmits basic IO instructions to the board via usb serial, which acts as a thin client. Requires tethering.

Platform Specific

Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireyes
Stepperyes
Serial/UARTyes
DACno
Pingyes
 

Arduino Micro

Environment

  • Firmware/Runtime: StandardFirmataPlus (additional instructions)
  • The JavaScript program is executed on a host machine that runs Node.js. The program transmits basic IO instructions to the board via usb serial, which acts as a thin client. Requires tethering.

Platform Specific

  • Supports the PING_READ extension, when used with PingFirmata.
Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTyes
DACno
Pingyes
 

Arduino Mini

Environment

  • Firmware/Runtime: StandardFirmataPlus (additional instructions)
  • The JavaScript program is executed on a host machine that runs Node.js. The program transmits basic IO instructions to the board via usb serial, which acts as a thin client. Requires tethering.

Platform Specific

  • Supports the PING_READ extension, when used with PingFirmata.
Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTyes
DACno
Pingyes
 

Arduino Nano

Environment

  • Firmware/Runtime: StandardFirmataPlus (additional instructions)
  • The JavaScript program is executed on a host machine that runs Node.js. The program transmits basic IO instructions to the board via usb serial, which acts as a thin client. Requires tethering.

Platform Specific

  • Supports the PING_READ extension, when used with PingFirmata.
Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTyes
DACno
Pingyes
 

Arduino Pro Mini

Environment

  • Firmware/Runtime: StandardFirmataPlus (additional instructions)
  • The JavaScript program is executed on a host machine that runs Node.js. The program transmits basic IO instructions to the board via usb serial, which acts as a thin client. Requires tethering.

Platform Specific

  • Supports the PING_READ extension, when used with PingFirmata.
Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTyes
DACno
Pingyes
 

BotBoarduino

Environment

  • Firmware/Runtime: StandardFirmataPlus (additional instructions)
  • The JavaScript program is executed on a host machine that runs Node.js. The program transmits basic IO instructions to the board via usb serial, which acts as a thin client. Requires tethering.

Platform Specific

Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireyes
Stepperyes
Serial/UARTyes
DACno
Pingyes
 

chipKit Uno32

Environment

  • Firmware/Runtime: StandardFirmataPlus (additional instructions)
  • The JavaScript program is executed on a host machine that runs Node.js. The program transmits basic IO instructions to the board via usb serial, which acts as a thin client. Requires tethering.

Platform Specific

Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireyes
Stepperyes
Serial/UARTyes
DACno
Pingyes
 

Spider Robot Controller

Environment

  • Firmware/Runtime: StandardFirmataPlus (additional instructions)
  • The JavaScript program is executed on a host machine that runs Node.js. The program transmits basic IO instructions to the board via usb serial, which acts as a thin client. Requires tethering.

Platform Specific

Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireyes
Stepperyes
Serial/UARTyes
DACno
Pingyes
 

DFRobot Romeo

Environment

  • Firmware/Runtime: StandardFirmataPlus (additional instructions)
  • The JavaScript program is executed on a host machine that runs Node.js. The program transmits basic IO instructions to the board via usb serial, which acts as a thin client. Requires tethering.

Platform Specific

Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireyes
Stepperyes
Serial/UARTyes
DACno
Pingyes
 

Teensy 3

Environment

  • Firmware/Runtime: StandardFirmataPlus (additional instructions)
  • The JavaScript program is executed on a host machine that runs Node.js. The program transmits basic IO instructions to the board via usb serial, which acts as a thin client. Requires tethering.
Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireyes
Stepperyes
Serial/UARTno
DACno
Pingyes
 

BeagleBone Black

Environment

Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTno
DACno
Pingno
 

CHIP

Environment

Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servono
I2Cyes
One Wireno
Stepperno
Serial/UARTno
DACno
Pingno
 

Blend Micro v1.0

Environment

Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTno
DACno
Pingno
 

Electric Imp April

Environment

Platform Specific

  • Requires an internet connected WiFi connection and is subject to request rate limiting by the Electric Imp API server.
Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cno
One Wireno
Stepperno
Serial/UARTno
DACno
Pingno
 

Intel Galileo Gen 1

Environment

Platform Specific

  • Non IoTKit builds are no longer supported.
Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTno
DACno
Pingno
 

Intel Galileo Gen 2

Environment

Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTno
DACno
Pingno
 

Intel Edison Arduino

Environment

Platform Specific

  • Hardware is capable of supporting only 4 PWM outputs. As a result, native bindings do not support PWM on pins 10 and 11.
  • While Galileo-io/Edison-io/Joule-io does not yet support serial comms, you can bind to /dev/ttyFMD1 on the Edison Arduino board using the serialport module.
Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTno
DACno
Pingno
 

Intel Edison Mini

Environment

Platform Specific

  • analogRead components can be supported via Expander instances. See Expander API for examples.
Analog Readno
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTno
DACno
Pingno
 

SparkFun Edison GPIO Block

Environment

Platform Specific

  • analogRead components can be supported via Expander instances. See Expander API for examples.
Analog Readno
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTno
DACno
Pingno
 

SparkFun Arduino Block

Environment

Platform Specific

Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireyes
Stepperyes
Serial/UARTno
DACno
Pingno
 

Intel Joule 570x (Carrier Board)

Environment

Analog Readno
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTno
DACno
Pingno
 

LightBlue Bean

Environment

Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTno
DACno
Pingno
 

Linino One

Environment

Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTno
DACno
Pingno
 

pcDuino3 Dev Board

Environment

Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servono
I2Cyes
One Wireno
Stepperno
Serial/UARTno
DACno
Pingno
 

Pinoccio Scout

Environment

Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cno
One Wireno
Stepperno
Serial/UARTno
DACno
Pingno
 

Raspberry Pi 3 Model B

Environment

Platform Specific

  • analogRead components can be supported via Expander instances. See Expander API for examples.
Analog Readno
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTyes
DACno
Pingno
 

Raspberry Pi 2 Model B

Environment

Platform Specific

  • analogRead components can be supported via Expander instances. See Expander API for examples.
Analog Readno
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTyes
DACno
Pingno
 

Raspberry Pi Zero

Environment

Platform Specific

  • analogRead components can be supported via Expander instances. See Expander API for examples.
Analog Readno
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTyes
DACno
Pingno
 

Raspberry Pi Model A Plus

Environment

Platform Specific

  • analogRead components can be supported via Expander instances. See Expander API for examples.
Analog Readno
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTyes
DACno
Pingno
 

Raspberry Pi Model B Plus

Environment

Platform Specific

  • analogRead components can be supported via Expander instances. See Expander API for examples.
Analog Readno
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTyes
DACno
Pingno
 

Raspberry Pi Model B Rev 1

Environment

Platform Specific

  • analogRead components can be supported via Expander instances. See Expander API for examples.
Analog Readno
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTyes
DACno
Pingno
 

Raspberry Pi Model B Rev 2

Environment

Platform Specific

  • analogRead components can be supported via Expander instances. See Expander API for examples.
Analog Readno
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTyes
DACno
Pingno
 

Particle Core (Spark Core)

Environment

Platform Specific

  • Timers are shared in groups: Timer 2: A0, A1, Timer 3: A4, A5, A6, A7, Timer 4: D0, D1
Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTno
DACno
Pingyes
 

Particle Photon

Environment

Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTno
DACno
Pingyes
 

Sparkfun Photon RedBoard

Environment

Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTno
DACno
Pingyes
 

Tessel 2

Environment

Platform Specific

  • Servo support is provided via I2C components (eg. PCA9685)
  • DAC is limited to Port B, Pin 7
Analog Readyes
Digital Readyes
Digital Writeyes
PWMyes
Servoyes
I2Cyes
One Wireno
Stepperno
Serial/UARTyes
DACyes
Pingno
 

Hi! The Johnny-Five community is building new projects every day. We made this newsletter to tell you about what's new, what's good, and what's next for Open Source robotics. Join us in exploring what we can make together.

Fork me on GitHub