This tutorial will set up SPI Python support on Raspberry Pi OS. SPI is used on our ADC-DAC Pi Zero 2 Channel ADC and 2 Channel DAC development board for the Raspberry Pi and our Expander Pi
Analogue, Digital and RTC development interface.
SPI can be used with Python versions 2 and 3. You can download Raspberry Pi OS from Raspberry Pi
Enabling the SPI bus
The SPI bus is disabled by default on Raspberry Pi OS. If you use Raspberry Pi OS (Raspian Linux) 3.18 or later, you must go into the Raspberry Pi config utility and enable the SPI kernel module.
sudo raspi-config
Select 3 Interface Options and then I3 SPI - Enable/disable automatic loading of SPI kernel module. A prompt will appear asking Would you like the SPI interface to be enabled? Select Yes, select OK on the following prompt, and then select Finish to exit the utility; then you need to reboot your Raspberry Pi.
sudo reboot
Previous Raspbian Linux Versions
For previous releases before Raspbian Linux 3.18, you need to complete the following steps:
In a terminal window, enter the following command to open raspi-blacklist.conf within the nano text editor.
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Comment out the line blacklist spi-bcm2708 by adding a # to the beginning of the line so it looks like this.
#blacklist spi-bcm2708
Save the file by pressing Ctrl-X and press Y to confirm.
For recent versions of the Raspberry Pi (3.18 kernel or later), you will need to update the /boot/config.txt file. Open the file with nano using the command:
sudo nano /boot/config.txt
Add the following text to the bottom of the file if it does not already exist:
dtparam=spi=on
Save the file by pressing Ctrl-X and press Y to confirm.
Reboot the Raspberry Pi.
sudo reboot
Installing the py-spidev Python module
Now that the SPI port is enabled, we can install the py-spidev python module. As py-spidev is unavailable through apt-get, we must download it from GitHub and install it using python-dev.
Start by updating apt-get to make sure we get the latest software.
sudo apt-get update
Once updated, install python-dev.
For Python 2, use:
sudo apt-get install python-dev python-setuptools git
For Python 3, use:
sudo apt-get install python3-dev python3-setuptools git
Now we have python-dev installed, we can download py-spidev.
You can download the latest version of py-spidev and the setup Python script for GitHub using the git command.
git clone https://github.com/abelectronicsuk/py-spidev.git
Once downloaded, install py-spidev by running setup.py
cd py-spidev
For Python 2, use:
sudo python setup.py install
For Python 3, use:
sudo python3 setup.py install
py-spidev should now be available to use on your Raspberry Pi.