Raspberry Pi SPI and I2C Tutorial
Contributors:
Byron J., Shawn Hymel
Resources and Going Further
For digging deeper into the concepts covered in this tutorial, please see the following:
- If you're really curious about the nitty-gritty internal details of I2C and SPI, you might want to read the source code of Wiring Pi, which you can clone from here.
- Additionally, you can learn about the Linux underpinnings of these interfaces documented at kernel.org. The SPI documentation seems to be more complete than its I2C sibling.
- If the example code here isn't working, you should check for updated versions on the 40-pin Pi Wedge GitHub Repository.
- The way that I2C and SPI devices are enabled in Raspbian has changed significantly in recent revisions. This forum post explains how to re-enable the interfaces if they disappeared in an upgrade.
- The HAT specifications and related information are hosted on GitHub. If you're designing a HAT, you'll want to start by reading the HAT Design Guide, and possibly perusing the B+ addons forum.
- Filezilla is a convenient FTP & SFTP client, which is useful for getting files to and from a Pi.
- PuTTY is a terminal program that has serial, telnet and SSH modes.
- The Pi gPIo tutorial explains how to use the digital I/O pins on your Pi.
- The Pi Wedge gives you a convenient way to access the SPI and I2C interfaces on your Pi.
For more information about the Raspberry Pi and the software described here, please visit their sites.
- The Raspberry Pi Foundation
- The Pi Foundation's B+ Addons forum.
- The Pi Foundation's GitHub repository for the Raspberry Pi B+ HATs.
- The eLinux.org Raspberry Pi peripherals guide
- WiringPi
- spidev
- RPi.GPIO module
- Some notes about increasing the available current from the B+ USB ports.
For more information on connecting hardware to the Raspberry Pi and inspiration for projects, check out the following guides:
Building Large LED Installations
Learn what it takes to build large LED installations from planning to power requirements to execution.
Bark Back Interactive Pet Monitor
Monitor and interact with pets through this dog bark detector project based on the Raspberry Pi!
Raspberry Pi Zero Helmet Impact Force Monitor
How much impact can the human body handle? This tutorial will teach you how to build your very own impact force monitor using a helmet, Raspberry Pi Zero, and accelerometer!
Using Flask to Send Data to a Raspberry Pi
In this tutorial, we'll show you how to use the Flask framework for Python to send data from ESP8266 WiFi nodes to a Raspberry Pi over an internal WiFi network.
Python Programming Tutorial: Getting Started with the Raspberry Pi
This guide will show you how to write programs on your Raspberry Pi using Python to control hardware.
Graph Sensor Data with Python and Matplotlib
Use matplotlib to create a real-time plot of temperature data collected from a TMP102 sensor connected to a Raspberry Pi.
Python GUI Guide: Introduction to Tkinter
Tkinter is the standard graphical user interface package that comes with Python. This tutorial will show you how to create basic windowed applications as well as complete full-screen dashboard examples complete with live graph updates from matplotlib.
If you have any problems or questions, our technical support department can help. Please don’t hesitate to contact us. We also love to hear about your projects!