Adafruit

From UpWiki
Jump to: navigation, search

Overview

Adafruit Industries (https://www.adafruit.com/) provide an excellent range of HATs and other peripherals for the Raspberry Pi, most of which can be used easily on the UP board as well.

To get users started with their HATs, Adafruit typically provide open-source Python libraries through their repositories on Github: https://github.com/adafruit.

Many of those Python libraries depend on the "Adafruit_GPIO" library, which includes some code to identify the platform (e.g. Raspberry Pi, BBB, Minnowboard, etc.) and set some correct defaults for that plaform such as the I2C bus number to use.

Emutex has modified the Adafruit_GPIO library to add initial support for the UP board. Right now, you can get this version and install it by running the following commands on your UP board:

sudo apt-get update
sudo apt-get install -y build-essential python-pip python-dev python-smbus git
git clone -b up-board https://github.com/emutex/Adafruit_Python_GPIO.git
cd Adafruit_Python_GPIO
sudo python setup.py install

Then, other Adafruit Python libraries which depend on that can be installed as normal from the Adafruit repositories. For example, to install the library for the Capacitive Touch HAT (https://www.adafruit.com/products/2340):

git clone https://github.com/adafruit/Adafruit_Python_MPR121.git
cd Adafruit_Python_MPR121
sudo python setup.py install

Please note that some libraries may require additional changes to work on the UP board. Feel free to update this wiki page with details of additional Adafruit libraries which work or don't work, or start a discussion in the UP forum.

Verified on UP

If anyone has successfully verified additional Adafruit HATs or breakout boards with UP, please feel free to add them here

How-Tos

Using Adafruit Capacitive Touch HAT on UP

  • With the UP board powered off, plug the HAT on the 40-pin I/O header, making sure that the HAT connector is aligned to pin 1 on the 40-pin I/O header.
  • [IMPORTANT] Install the modified Adafruit_GPIO library as described in the Overview section above
  • Download and install the Adafruit_MPR121 Python library as follows:
git clone https://github.com/adafruit/Adafruit_Python_MPR121.git
cd Adafruit_Python_MPR121
sudo python setup.py install
  • Run the following example script
sudo python examples/simpletest.py
  • Touch any of the 12 large round contacts on the HAT, numbered from 0-11, and you should see messages printed on the screen to indicate that the touch was detected.

For more information and project ideas, please check out these links:

Using Adafruit 16-Channel PWM / Servo HAT on UP

  • With the UP board powered off, plug the HAT on the 40-pin I/O header, making sure that the HAT connector is aligned to pin 1 on the 40-pin I/O header.
  • [IMPORTANT] Install the modified Adafruit_GPIO library as described in the Overview section above
  • Download and install the Adafruit_PCA9685 Python library as follows:
git clone https://github.com/adafruit/Adafruit_Python_PCA9685.git
cd Adafruit_Python_PCA9685
sudo python setup.py install
sudo python examples/simpletest.py
  • The servo rotor arm should move continuously back and forth between min and max positions (typically a sweep of ~180 degrees). You may want to tune the min/max pulse lengths for your specific servo, by editing the 'servo_min' and 'servo_max' variables in the simpletest.py script.

For more information and project ideas, please check out these links:

Using Adafruit DC & Stepper Motor HAT on UP

  • With the UP board powered off, plug the HAT on the 40-pin I/O header, making sure that the HAT connector is aligned to pin 1 on the 40-pin I/O header.
  • [IMPORTANT] Download and install this modified version of the Adafruit Motor HAT Python library as follows:
git clone -b up-board https://github.com/emutex/Adafruit-Motor-HAT-Python-Library.git
cd Adafruit-Motor-HAT-Python-Library
sudo python setup.py install
sudo python examples/DCTest.py
  • The motor should rotate forwards (speeding up and slowing down), then in reverse, repeatedly.

For more information and project ideas, please check out these links:

Using Adafruit ADXL345 Triple-Axis Accelerometer Breakout board on UP

Unlike the examples above, this is not available in a HAT form factor. However, the breakout board can still be connected easily to the UP Board as follows:

  • With the UP board powered off, use suitable jumer wires to connect pins from the breakout board to the 40-pin I/O header on the UP board as follows (click here for the UP board pin layout):
ADXL345       UP Board
-------       --------------
    VIN  <->  Pin 1 (3.3V)
    GND  <->  Pin 6 (GND)
    SDA  <->  Pin 3 (I2C1_SDA)
    SCL  <->  Pin 5 (I2C1_SCL)
  • [IMPORTANT] Install the modified Adafruit_GPIO library as described in the Overview section above
  • Download and install the Adafruit_ADXL345 Python library as follows:
git clone https://github.com/adafruit/Adafruit_Python_ADXL345.git
cd Adafruit_Python_ADXL345
sudo python setup.py install
  • Run the following example script
sudo python examples/simpletest.py
  • Move the accelerometer around to observe the changes in G forces on the X/Y/Z axes.

For more information and project ideas, please check out these links:

Using Adafruit MCP9808 Temperature Sensor Breakout board on UP

Unlike the examples above, this is not available in a HAT form factor. However, the breakout board can still be connected easily to the UP Board as follows:

  • With the UP board powered off, use suitable jumer wires to connect pins from the breakout board to the 40-pin I/O header on the UP board as follows (click here for the UP board pin layout):
MCP9808       UP Board
-------       --------------
    Vdd  <->  Pin 1 (3.3V)
    Gnd  <->  Pin 6 (GND)
    SDA  <->  Pin 3 (I2C1_SDA)
    SCL  <->  Pin 5 (I2C1_SCL)
  • [IMPORTANT] Install the modified Adafruit_GPIO library as described in the Overview section above
  • Download and install the Adafruit_MCP9808 Python library as follows:
git clone https://github.com/adafruit/Adafruit_Python_MCP9808.git
cd Adafruit_Python_MCP9808
sudo python setup.py install
  • Run the following example script, which will print the measured temperature to the screen once per second:
sudo python examples/simpletest.py

For more information and project ideas, please check out these links: