The Pin IO capability basically lets you control the pins of the Arduino one by one. Its meant for basic prototyping and control where you may not want to write a full app from scratch!

The app and sketch are also 'smart' in that when you connect, the app will query the Arduino what pins are available and what they can do!

Initial Query

Make sure you have the most recent version of the app, and the correct configuration. During connection you'll see the app Querying Pin Capabilities... It will then get the correct details and fill out the pin map

If the query fails, the app will default back to our old 'UNO' setup, which may not work well for you. Check debug output for the Bluefruit firmata sketch, make sure you're running the latest version of the sketch

Digital Input

All of the pins default to digital inputs with built-in pullup resistors. This means that by default the pins read HIGH. When a button is wired to the pin & pressed or the pin is shorted to ground, you will receive a LOW signal

Digital Output

 You can also set the pins to digital outputs. This will let you set the pins HIGH (3V or 5V, depending on the microcontroller voltage) or LOW (0V a.k.a ground). Great for turning on & off LEDs

You can also wire it up to a PowerSwitch Tail which gives you a safe way to control appliances!

PWM Output

On some pins, there's PWM output available, you can dim or brighten an LED. You could also control a DC motor through a driver, if it can be PWM controlled

Analog Input

There are also some pins that have Analog pin capability. You can read various sensors or potentiometers that are wired to these pins. Its best to make sure you know how to get the analog sensor working first, using plain Arduino code, before wiring it up for use with Pin IO

This guide was first published on Feb 20, 2015. It was last updated on Feb 20, 2015. This page (Usage) was last updated on Jun 16, 2019.