neopixel — control of WS2812 / NeoPixel LEDs

This module provides a driver for WS2818 / NeoPixel LEDs.

Note

This module is not included by default on the W55MH32 ports. You can either install the neopixel package using mip, or you can download the module directly from micropython-lib and copy it to the filesystem.

class NeoPixel

This class stores pixel data for a WS2812 LED strip connected to a pin. The application should set pixel data and then call NeoPixel.write() when it is ready to update the strip.

For example:

import neopixel

# 32 LED strip connected to X8.
p = machine.Pin.board.X8
n = neopixel.NeoPixel(p, 32)

# Draw a red gradient.
for i in range(32):
    n[i] = (i * 8, 0, 0)

# Update the strip.
n.write()

Constructors

class neopixel.NeoPixel(pin, n, *, bpp=3, timing=1)

Construct an NeoPixel object. The parameters are:

  • pin is a machine.Pin instance.

  • n is the number of LEDs in the strip.

  • bpp is 3 for RGB LEDs, and 4 for RGBW LEDs.

  • timing is 0 for 400KHz, and 1 for 800kHz LEDs (most are 800kHz). You may also supply a timing tuple as accepted by machine.bitstream().

Pixel access methods

NeoPixel.fill(pixel)

Sets the value of all pixels to the specified pixel value (i.e. an RGB/RGBW tuple).

NeoPixel.__len__()

Returns the number of LEDs in the strip.

NeoPixel.__setitem__(index, val)

Set the pixel at index to the value, which is an RGB/RGBW tuple.

NeoPixel.__getitem__(index)

Returns the pixel at index as an RGB/RGBW tuple.

Output methods

NeoPixel.write()

Writes the current pixel data to the strip.