skip to navigation
skip to content

Not Logged In

Adafruit_BBIO 0.0.9

A module to control BeagleBone IO channels

Latest Version: 0.0.30

**Adafruit's BeagleBone IO Python Library**

This is a set of Python tools to allow GPIO, PWM, and ADC access on the BeagleBone using the Linux 3.8 Kernel and above (latest releases).

It has been tested on the 5-20 and 6-6 Angstrom image on the BeagleBone Black.

**Note: BBIO has been renamed to Adafruit_BBIO.**

**Installation on Angstrom**


/usr/bin/ntpdate -b -s -u
opkg update && opkg install python-pip python-setuptools
pip install Adafruit_BBIO


git clone git://
#set the date and time
/usr/bin/ntpdate -b -s -u
#install dependency
opkg update && opkg install python-distutils
cd adafruit-beaglebone-io-python
python install

**Installation on Ubuntu**


sudo ntpdate
sudo apt-get update
sudo apt-get install build-essential python-dev python-pip -y
sudo pip install Adafruit_BBIO


sudo ntpdate
sudo apt-get update
sudo apt-get install build-essential python-dev python-pip -y
git clone git://
cd adafruit-beaglebone-io-python
sudo python install
cd ..
sudo rm -rf adafruit-beaglebone-io-python


Using the library is very similar to the excellent RPi.GPIO library used on the Raspberry Pi. Below are some examples.

**GPIO Setup**

Import the library, and setup as GPIO.OUT or GPIO.IN::

import Adafruit_BBIO.GPIO as GPIO
GPIO.setup("P8_14", GPIO.OUT)

You can also refer to the pin names::

GPIO.setup("GPIO0_26", GPIO.OUT)

**GPIO Output**

Setup the pin for output, and write GPIO.HIGH or GPIO.LOW. Or you can use 1 or 0.::

import Adafruit_BBIO.GPIO as GPIO
GPIO.setup("P8_14", GPIO.OUT) GPIO.output("P8_14", GPIO.HIGH)

**GPIO Input**

Inputs work similarly to outputs.::

import Adafruit_BBIO.GPIO as GPIO
GPIO.setup("P8_14", GPIO.IN)

Polling inputs::

if GPIO.input("P8_14"):

Waiting for an edge (GPIO.RISING, GPIO.FALLING, or GPIO.BOTH::

GPIO.wait_for_edge(channel, GPIO.RISING)

Detecting events::

GPIO.add_event_detect("P9_12", GPIO.FALLING)
#your amazing code here
#detect wherever:
if GPIO.event_detected("P9_12"):
print "event detected!"


import Adafruit_BBIO.PWM as PWM
#PWM.start(channel, duty, freq=2000)
#duty values are valid 0-100
PWM.start("P9_14", 50)
PWM.set_duty_cycle("P9_14", 25.5) PWM.set_frequency("P9_14", 10)



import Adafruit_BBIO.ADC as ADC

#read returns values 0-1.0
value ="P9_40")

#read_raw returns non-normalized value
value = ADC.read_raw("P9_40")

**Running tests**

Install py.test to run the tests. You'll also need the python compiler package for py.test.::

opkg update && opkg install python-compiler
#Either pip or easy_install
pip install -U pytest
easy_install -U pytest

Execute the following in the root of the project::



The BeagleBone IO Python library was originally forked from the excellent MIT Licensed [RPi.GPIO] library written by Ben Croston.


Written by Justin Cooper, Adafruit Industries. BeagleBone IO Python library is released under the MIT License.
* Fix for ADC Segmentation Faults

* Temp remove overlay compilation. Ubuntu failures.

* Refactor and clean up adc and pwm
* Fix tests for Adafruit_BBIO rename

* Include as top-level module

* Rename from BBIO to Adafruit_BBIO to reduce library conflicts and confusion.

* Support for pip and easy_install

* ADC enabled

* PWM enabled

* Initial Commit
* GPIO mostly working
* Initial GPIO unit tests
* PWM in progress  
File Type Py Version Uploaded on Size
Adafruit_BBIO-0.0.9.tar.gz (md5) Source 2013-07-09 30KB
  • Downloads (All Versions):
  • 162 downloads in the last day
  • 1006 downloads in the last week
  • 3386 downloads in the last month