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!
Filter platforms by where the Johnny-Five program runs:- On all!
- In an on-board Linux environment.
- On a host machine tethered (via Serial USB or Ethernet) to a client.
- On a host machine communicating over Wifi to the client.
- On a host machine communicating over Bluetooth to the client.
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
-
Supports the
PING_READ
extension, when used withPingFirmata
. -
Supports the
STEPPER_*
extensions when used withAdvancedFirmata
orConfigurableFirmata
.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | yes |
Stepper | yes |
Serial/UART | yes |
DAC | no |
Ping | yes |
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
-
Supports the
PING_READ
extension, when used withPingFirmata
. -
Supports the
STEPPER_*
extensions when used withAdvancedFirmata
orConfigurableFirmata
.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | yes |
Stepper | yes |
Serial/UART | yes |
DAC | no |
Ping | yes |
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
-
Supports the
PING_READ
extension, when used withPingFirmata
. -
Supports the
STEPPER_*
extensions when used withAdvancedFirmata
orConfigurableFirmata
.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | yes |
Stepper | yes |
Serial/UART | yes |
DAC | no |
Ping | yes |
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
-
Supports the
PING_READ
extension, when used withPingFirmata
. -
Supports the
STEPPER_*
extensions when used withAdvancedFirmata
orConfigurableFirmata
.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | yes |
Stepper | yes |
Serial/UART | yes |
DAC | no |
Ping | yes |
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
-
Supports the
PING_READ
extension, when used withPingFirmata
. -
Supports the
STEPPER_*
extensions when used withAdvancedFirmata
orConfigurableFirmata
.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | yes |
Stepper | yes |
Serial/UART | yes |
DAC | no |
Ping | yes |
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 withPingFirmata
.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | yes |
DAC | no |
Ping | yes |
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 withPingFirmata
.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | yes |
DAC | no |
Ping | yes |
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 withPingFirmata
.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | yes |
DAC | no |
Ping | yes |
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 withPingFirmata
.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | yes |
DAC | no |
Ping | yes |
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
-
Supports the
PING_READ
extension, when used withPingFirmata
. -
Supports the
STEPPER_*
extensions when used withAdvancedFirmata
orConfigurableFirmata
.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | yes |
Stepper | yes |
Serial/UART | yes |
DAC | no |
Ping | yes |
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
- Check out chipkit.net!
-
Supports the
PING_READ
extension, when used withPingFirmata
. -
Supports the
STEPPER_*
, extensions when used withAdvancedFirmata
orConfigurableFirmat
. -
Digital pins 26-41 and Analog pins A6-A11 are presently not supported in StandardFirmataPlus, pending a pin definition update in
Boards.h
- This fork has the relevant changes and should be uploaded to the board via the chipKit-provided IDE
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | yes |
Stepper | yes |
Serial/UART | yes |
DAC | no |
Ping | yes |
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
-
Supports the
PING_READ
extension, when used withPingFirmata
. -
Supports the
STEPPER_*
extensions when used withAdvancedFirmata
orConfigurableFirmata
.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | yes |
Stepper | yes |
Serial/UART | yes |
DAC | no |
Ping | yes |
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
-
Supports the
PING_READ
extension, when used withPingFirmata
. -
Supports the
STEPPER_*
extensions when used withAdvancedFirmata
orConfigurableFirmata
.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | yes |
Stepper | yes |
Serial/UART | yes |
DAC | no |
Ping | yes |
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 Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | yes |
Stepper | yes |
Serial/UART | no |
DAC | no |
Ping | yes |
BeagleBone Black
Environment
- IO Plug-in: BeagleBone-IO (additional instructions)
- Firmware/Runtime: Debian (additional instructions)
- The JavaScript program is executed directly on board, in a Linux environment running Node.js.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | no |
DAC | no |
Ping | no |
CHIP
Environment
- IO Plug-in: Chip-IO (additional instructions)
- Firmware/Runtime: Debian (additional instructions)
- The JavaScript program is executed directly on board, in a Linux environment running Node.js.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | no |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | no |
DAC | no |
Ping | no |
Blend Micro v1.0
Environment
- IO Plug-in: BlendMicro-IO (additional instructions)
- Firmware/Runtime: BLEFirmata
- The JavaScript program is executed on a host machine that runs Node.js. The program transmits basic IO instructions over Bluetooth to the board, which acts as a thin client.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | no |
DAC | no |
Ping | no |
Electric Imp April
Environment
- IO Plug-in: Imp-IO (additional instructions)
- Firmware/Runtime: Tyrion (additional instructions)
- The JavaScript program is executed on a host machine that runs Node.js. The program transmits basic IO instructions over WiFi to the board, which acts as a thin client.
Platform Specific
- Requires an internet connected WiFi connection and is subject to request rate limiting by the Electric Imp API server.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | no |
One Wire | no |
Stepper | no |
Serial/UART | no |
DAC | no |
Ping | no |
Intel Galileo Gen 1
Environment
- IO Plug-in: Galileo-IO (additional instructions)
- Firmware/Runtime: IoT DevKit (additional instructions)
- The JavaScript program is executed directly on board, in a Linux environment running Node.js.
Platform Specific
- Non IoTKit builds are no longer supported.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | no |
DAC | no |
Ping | no |
Intel Galileo Gen 2
Environment
- IO Plug-in: Galileo-IO (additional instructions)
- Firmware/Runtime: IoT DevKit (additional instructions)
- The JavaScript program is executed directly on board, in a Linux environment running Node.js.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | no |
DAC | no |
Ping | no |
Intel Edison Arduino
Environment
- IO Plug-in: Edison-IO (additional instructions)
- Firmware/Runtime: IoT DevKit (additional instructions)
- The JavaScript program is executed directly on board, in a Linux environment running Node.js.
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 Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | no |
DAC | no |
Ping | no |
Intel Edison Mini
Environment
- IO Plug-in: Edison-IO (additional instructions)
- Firmware/Runtime: IoT DevKit (additional instructions)
- The JavaScript program is executed directly on board, in a Linux environment running Node.js.
Platform Specific
-
analogRead
components can be supported viaExpander
instances. See Expander API for examples.
Analog Read | no |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | no |
DAC | no |
Ping | no |
SparkFun Edison GPIO Block
Environment
- IO Plug-in: Edison-IO (additional instructions)
- Firmware/Runtime: IoT DevKit (additional instructions)
- The JavaScript program is executed directly on board, in a Linux environment running Node.js.
Platform Specific
-
analogRead
components can be supported viaExpander
instances. See Expander API for examples.
Analog Read | no |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | no |
DAC | no |
Ping | no |
SparkFun Arduino Block
Environment
- IO Plug-in: Edison-IO (additional instructions)
- Firmware/Runtime: IoT DevKit (additional instructions)
- The JavaScript program is executed directly on board, in a Linux environment running Node.js.
Platform Specific
- This block does not use native mraa bindings. Please see SparkFun Edison Arduino Block, in the Galileo-IO repository, for help getting started.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | yes |
Stepper | yes |
Serial/UART | no |
DAC | no |
Ping | no |
Intel Joule 570x (Carrier Board)
Environment
- IO Plug-in: Joule-IO (additional instructions)
- Firmware/Runtime: Reference Linux* OS for IoT (additional instructions)
- The JavaScript program is executed directly on board, in a Linux environment running Node.js.
Analog Read | no |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | no |
DAC | no |
Ping | no |
LightBlue Bean
Environment
- IO Plug-in: Bean-IO (additional instructions)
- Firmware/Runtime: StandardFirmata (additional instructions)
- The JavaScript program is executed on a host machine that runs Node.js. The program transmits basic IO instructions over Bluetooth to the board, which acts as a thin client.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | no |
DAC | no |
Ping | no |
Linino One
Environment
- IO Plug-in: Nino-IO (additional instructions)
- Firmware/Runtime: Linino (additional instructions)
- The JavaScript program is executed directly on board, in a Linux environment running Node.js.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | no |
DAC | no |
Ping | no |
pcDuino3 Dev Board
Environment
- IO Plug-in: pcDuino-IO (additional instructions)
- Firmware/Runtime: pcDuino (additional instructions)
- The JavaScript program is executed directly on board, in a Linux environment running Node.js.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | no |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | no |
DAC | no |
Ping | no |
Pinoccio Scout
Environment
- IO Plug-in: Pinoccio-IO (additional instructions)
- Firmware/Runtime: pinocc.io (additional instructions)
- The JavaScript program is executed on a host machine that runs Node.js. The program transmits basic IO instructions over WiFi to the board, which acts as a thin client.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | no |
One Wire | no |
Stepper | no |
Serial/UART | no |
DAC | no |
Ping | no |
Raspberry Pi 3 Model B
Environment
- IO Plug-in: Raspi-IO (additional instructions)
- Firmware/Runtime: Raspbian (additional instructions)
- The JavaScript program is executed directly on board, in a Linux environment running Node.js.
Platform Specific
-
analogRead
components can be supported viaExpander
instances. See Expander API for examples.
Analog Read | no |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | yes |
DAC | no |
Ping | no |
Raspberry Pi 2 Model B
Environment
- IO Plug-in: Raspi-IO (additional instructions)
- Firmware/Runtime: Raspbian (additional instructions)
- The JavaScript program is executed directly on board, in a Linux environment running Node.js.
Platform Specific
-
analogRead
components can be supported viaExpander
instances. See Expander API for examples.
Analog Read | no |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | yes |
DAC | no |
Ping | no |
Raspberry Pi Zero
Environment
- IO Plug-in: Raspi-IO (additional instructions)
- Firmware/Runtime: Raspbian (additional instructions)
- The JavaScript program is executed directly on board, in a Linux environment running Node.js.
Platform Specific
-
analogRead
components can be supported viaExpander
instances. See Expander API for examples.
Analog Read | no |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | yes |
DAC | no |
Ping | no |
Raspberry Pi Model A Plus
Environment
- IO Plug-in: Raspi-IO (additional instructions)
- Firmware/Runtime: Raspbian (additional instructions)
- The JavaScript program is executed directly on board, in a Linux environment running Node.js.
Platform Specific
-
analogRead
components can be supported viaExpander
instances. See Expander API for examples.
Analog Read | no |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | yes |
DAC | no |
Ping | no |
Raspberry Pi Model B Plus
Environment
- IO Plug-in: Raspi-IO (additional instructions)
- Firmware/Runtime: Raspbian (additional instructions)
- The JavaScript program is executed directly on board, in a Linux environment running Node.js.
Platform Specific
-
analogRead
components can be supported viaExpander
instances. See Expander API for examples.
Analog Read | no |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | yes |
DAC | no |
Ping | no |
Raspberry Pi Model B Rev 1
Environment
- IO Plug-in: Raspi-IO (additional instructions)
- Firmware/Runtime: Raspbian (additional instructions)
- The JavaScript program is executed directly on board, in a Linux environment running Node.js.
Platform Specific
-
analogRead
components can be supported viaExpander
instances. See Expander API for examples.
Analog Read | no |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | yes |
DAC | no |
Ping | no |
Raspberry Pi Model B Rev 2
Environment
- IO Plug-in: Raspi-IO (additional instructions)
- Firmware/Runtime: Raspbian (additional instructions)
- The JavaScript program is executed directly on board, in a Linux environment running Node.js.
Platform Specific
-
analogRead
components can be supported viaExpander
instances. See Expander API for examples.
Analog Read | no |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | yes |
DAC | no |
Ping | no |
Particle Core (Spark Core)
Environment
- IO Plug-in: Spark-IO (additional instructions)
- Firmware/Runtime: VoodooSpark (additional instructions)
- The JavaScript program is executed on a host machine that runs Node.js. The program transmits basic IO instructions over WiFi to the board, which acts as a thin client.
Platform Specific
-
Timers are shared in groups: Timer 2:
A0
,A1
, Timer 3:A4
,A5
,A6
,A7
, Timer 4:D0
,D1
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | no |
DAC | no |
Ping | yes |
Particle Photon
Environment
- IO Plug-in: Spark-IO (additional instructions)
- Firmware/Runtime: VoodooSpark (additional instructions)
- The JavaScript program is executed on a host machine that runs Node.js. The program transmits basic IO instructions over WiFi to the board, which acts as a thin client.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | no |
DAC | no |
Ping | yes |
Sparkfun Photon RedBoard
Environment
- IO Plug-in: Spark-IO (additional instructions)
- Firmware/Runtime: VoodooSpark (additional instructions)
- The JavaScript program is executed on a host machine that runs Node.js. The program transmits basic IO instructions over WiFi to the board, which acts as a thin client.
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | no |
DAC | no |
Ping | yes |
Tessel 2
Environment
- IO Plug-in: Tessel-IO (additional instructions)
- Firmware/Runtime: Tessel 2 Firmware on OpenWRT (additional instructions)
- The JavaScript program is executed directly on board, in a Linux environment running Node.js.
Platform Specific
- Servo support is provided via I2C components (eg. PCA9685)
- DAC is limited to Port B, Pin 7
Analog Read | yes |
Digital Read | yes |
Digital Write | yes |
PWM | yes |
Servo | yes |
I2C | yes |
One Wire | no |
Stepper | no |
Serial/UART | yes |
DAC | yes |
Ping | no |