Skip to content
Switch branches/tags
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

APA102 Library

Build Status Coverage Status PyPi Package Python Versions

A simple library to drive APA102 pixels from the Raspberry Pi, or similar SBCs.

Uses either spidev or RPi.GPIO depending on the pins specified.


You must enable SPI:

  • spi: sudo raspi-config nonint do_spi 0

You can optionally run sudo raspi-config or the graphical Raspberry Pi Configuration UI to enable interfaces.


Stable library from PyPi:

  • Just run python3 -m pip install apa102

Latest/development library from GitHub:

  • git clone
  • cd apa102-python
  • sudo ./


The APA102 class will attempt to use spidev or RPi.GPIO depending on which pins you specify.

For example; three RGB LEDs connected to SPI pins 10 and 11 with chip-select 8 (CE0):

from apa102 import APA102
lights = APA102(3, 10, 11, 8)

You can then set individual pixels with set_pixel:

lights.set_pixel(0, 255, 0, 0)  # Pixel 1 to Red
lights.set_pixel(1, 0, 255, 0)  # Pixel 2 to Green
lights.set_pixel(2, 0, 0, 255)  # Pixel 3 to Blue

Pixels are zero-indexed and accept Red, Green and Blue colour values from 0 to 255.