Only this pageAll pages
Powered by GitBook
1 of 22

devel

Loading...

Guides

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Configuration

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Documentation

Loading...

Loading...

Loading...

Home of the docs

The documentation for WS281x LED Status!

This documentation should tell you all you need to know about how to use the plugin. There's a lot of information here, please be sure to read some of it before opening issues in case the solution is here.

Want to contribute? Go for it! There should be an 'Edit on GitHub' button to the top right of each page. View the documentation on the repository.

Enjoying the plugin? Please consider supporting it's development! You can sponsor it ❤ Thank you for your support! It means a lot.

Feedback? Questions? Need more info? Please give feedback! You can rate the pages using the smiley faces in the bottom of each page. Feel free to get in contact anywhere to let me know of issues with any of these docs, or contribute.

through GitHub here

Supported Hardware

This page lists the hardware that is officially supported to use this plugin

LED Strips

The 4 types of LED strips that the plugin supports are:

  • WS2811 (including B variants)

  • WS2812 (including B variants)

  • SK6812 RGB

  • SK6812 RGBW

Please note as well that 'NeoPixels' are an Adafruit brand name, I find that they are much cheaper direct from China with just as good results, they are the same thing.

To get the most of your RGBW strips, you can enable 'Use dedicated white' in the strip settings after it is setup.

Power Supplies

There are no officially-supported models for power supplies, since they are all the same. However, please make sure you are using an external power supply and not using the RPi GPIO pins to power the LEDs. They cannot provide the power drawn by a strip of WS281x LEDs.

Don't use tiny wires to connect the LEDs - these can heat up and melt if they are too thin.

Level Shifting

I have had good results with a 74ACHT125 level shifter, which is recommended by Adafruit for their Neopixels. Please note that while WS281x LEDs work without level shifting, you may need to keep the wires as short as possible - especially when using 12V LEDs.

Raspberry Pi

All models of Raspberry Pi are supported currently, however for new models I will have to wait for upstream support from the rpi-ws281x library first. This page will be updated if this happens!

This also means that no other devices than a Raspberry Pi are supported. There are no alternative libraries for WS281x LED control (for Python) that could enable this, so there is nothing that can be done. Sorry!

The plugin will not load if it is not running on a Raspberry Pi, even if it does install.

Got the necessary hardware? Wire it up!

Wiring your LEDs

Initial Configuration

There are common defaults set in the plugin, here is an explanation of those you should change to match your setup.

Open the plugin's entry in OctoPrint's settings interface, and you should be presented with this view:

WS281x LED Status settings

Click on the 'LED Strip Settings' button in the top right. The key settings you should edit are listed below:

  • Strip Type Select the type of strip you have connected to your Pi. Note: This may not be exactly what you were sold, sometimes they send variations. If you have issues, please try similar strip types here.

  • Number of LEDs This should be easy, count the number of LEDs you have connected and enter the right number!

  • Max Brightness This setting controls the maximum brightness that your LEDs should reach.

For more details on the rest of these settings, please see the

full documentation

Setup Guide

How to setup WS281x LED Status on your Raspberry Pi running OctoPrint.

I've tried to make this setup process as simple as possible, while it was already easy it is even easier with this guide.

Installation

Install the plugin via OctoPrint's bundled plugin manager or manually using this URL:

https://github.com/cp2004/OctoPrint-WS281x_LED_Status/releases/latest/download/release.zip

Once you have installed and enabled the plugin, OctoPrint will prompt you to restart the server.

Once the server is back up, you may have to refresh the page for in order for the wizard dialog to show up.

Using the OctoPrint Docker container? There's some for this to work.

Check you have the right hardware:

Next up: Wiring your LEDs

additional steps you have to follow
Supported Hardware
Wiring your LEDs

SPI Setup

How to setup and configure the Raspberry Pi's SPI interface for use with WS281x LEDs.

The plugin uses the Raspberry Pi's SPI interface to push data to the LED strip, rather than PWM since it doesn't need to be run as root to use SPI.

As a result of this, there are a couple of OS level configuration items that need to be handled. Luckily for you, the plugin makes this very easy for you to do by providing a UI to run the commands.

Initial Setup Wizard

Note: You may need to reload the web UI after installing the plugin, to get the wizard to show up. It will not display if all settings are correct or you have dismissed the wizard once already.

The setup wizard requires root access, and therefore the password for the Pi user if you have not configured passwordless sudo, as is default on OctoPi. This password is not stored, and is only used for the steps below.

  • Add the pi user to the gpio group.

    Already configured on newer images. Means the pi users can access the GPIO pins.

    • Runs sudo adduser pi gpio

WS281x LED Status OS configuration complete! You will need to reboot your Pi for these changes to take effect.

Final stage: Initial Configuration

Get Help Guide

Need help using the plugin? Read this page first.

Please select the area that most describes what you need help with:

  • Configuration of the plugin

  • Connecting LEDs and getting them to work

  • Reporting a bug in the plugin

Configuration of the plugin

There's a lot of documentation here, that describes in detail the configuration options and the features of the plugin. Be sure to read the pages under the configuration section, such as

Still struggling? Please seek help on the , or the . I'm often there, or there are other users of the plugin who can help out.

Connecting LEDs and making them work

Probably the step that has the most problems, you're not alone here.

Please double check that you have wired the LEDs exactly as shown in the and double check all connections.

Next up is the , where there's a list of common problems identified with solutions. Please check there and make sure your problem isn't listed, or try some of the recommended solutions.

Still won't work?

Before asking for help, please ensure that your LED strip works with other devices if possible. The best thing to check is with an Arduino, since these work more reliably than Raspberry Pi & Python.

You can seek support by opening a issue, on the , or the. Helpful people are around most of the time to get your problems solved.

Reporting a bug with the plugin

Really? You found a bug? Ok then, best make sure it is fixed.

Please open a bug report issue providing as much information as possible, including:

  • (Always) octoprint.log file

  • (Always)plugin_ws281x_led_status_debug.log file, preferably with enabled.

  • Clear, easy steps to reproduce.

Please use the

Enable SPI. The plugin uses SPI to drive the LEDs, which is disabled by default and needs to be turned on.

  • Adds dtparam=spi=on to /boot/config.txt

  • Increase SPI buffer size. Whilst the plugin will work without this, it will only work well with a handful of LEDs.

    • Adds spidev.bufsize=32768 to the end of /boot/cmdline.txt

  • Set compatible clock frequency Raspberry Pi 3 or earlier only, not required for a Pi 4 The Pi 3's default internal clock frequency is not compatible with SPI, so it needs to be set to 250 to be compatible.

    • Adds core_freq=250 to /boot/config.txt

  • Set a minimum clock frequency Raspberry Pi 4 only On a Raspberry Pi 4, the clock frequency is dynamic and can change when the pi is 'idle' vs. 'working', which causes LEDs to flicker, change colour, or stop working completely. By setting a minimum the same as the max, we stop this dynamic clocking.

    • Adds core_freq_min=500 to /boot/config.txt

  • Initial Configuration

    The hardware you are using (if relevant)

  • Screenshots/video showing the problems (if necessary - these can help quite a lot)

  • LED Strip Configuration
    OctoPrint community forums
    Discord Server
    Wiring Guide
    troubleshooting guide
    'Get Help'
    OctoPrint community forums
    Discord Server
    debug logging
    bug report template!

    Setup in Docker

    Using OctoPrint in a docker container? You need to do some slightly different config.

    This step is not required if you are not using a docker container. The standard setup guide can be found here

    You will still need to follow the full setup guide, this is additional.

    The plugin needs to be able to access 3 files to run. These are:

    • /boot/config.txt

    • /boot/commandline.txt

    • /proc/device-tree/model

    It also needs access to the underlying hardware to drive the LEDs. To do this it will need to run privileged with docker.

    This guide assumes you are using the official and it's docker-compose.yml file.

    Add the following mappings to docker-compose.yml under the volumes: section of the OctoPrint service

    To enable access to the hardware to drive the LEDs, the container must be run privileged:

    The final file should look something like this Gist:

    Version 0.6.0 of the plugin requires these files to exist on the system for the UI to work. When these don't exist, it crashes the web UI.

    Even if your system doesn't use these files, they must exist - just skip the wizard and it will not add anything to them

    You may still need to use the , adjusting the paths.

    Wiring your LEDs

    Wiring LEDs to your Raspberry Pi is the most important step!

    WS281x LEDs are very simple to wire with their 3 LEDs. There are three options of how to wire, each detailed below.

    Make sure you have a sufficient power supply!

    You cannot power more than a handful of pixels direct from the Raspberry Pi - it can output a maximum of 500mA, which with a printer and camera connected leaves little left for LEDs. Please use an external power supply rated for the number of LEDs you have.

    Using SPI to control the LEDs means you can only use one LED strip at a time with the Raspberry Pi. If you have more than one, you can 'chain' them together to make a longer strip. Please note that per-segment control is not currently supported, but may be in the future.

    Raspberry Pi Wiring

    The hardest part about wiring with a Raspberry Pi is connecting up the 3.3v logic from the Pi to the strip that wants 5v. There are several ways you can do this, which are described in more detail below.

    All of the references to GPIO pins here are referring to the BCM Pin numbering. For more details on GPIO pins and the different ways of numbering them please see

    No Level Shifting

    It is possible to connect the LEDs up without any kind of level shifting, however mileage varies from strip to strip. I have one setup like this, and one with the full logic shifter. This can work because the spec of the LED strips means they need 0.7 * VDD(5v) which is ~3.5v. Close to the Pi's 3.3, so depending on how tight of a tolerance your strip has, this is possible.

    Wiring is as follows:

    • Pi GND to LED GND

    • Pi to LED Data in

    • Power supply GND to LED GND

    • Power supply 5V to LED 5V

    Make sure you have a common ground between the power supply and Pi.

    Level Shifting Chip

    You can use a level shifting chip to convert the signals from 3.3v to 5v. Recommended one to use is a 74AHCT125, I have this and it works well.

    Please note that whilst the wiring below is on a breadboard, this is for illustrative purposes and is not suitable for high current installations. Test with a breadboard and few LEDs, then connect them directly.

    Wiring of this is as follows:

    • Common ground between:

      • Pi GND

      • LED GND

      • Power Supply GND

    Wiring with a Diode

    The diode method is a quick way to reduce the power supply voltage slightly, so that the LED strip can read the 3.3v.

    Make sure you have a diode that can cope with the amount of power drawn! As a result of them running at lower voltage the LEDs may not be as bright.

    Please note that whilst the wiring below is on a breadboard, this is for illustrative purposes and is not suitable for high current installations. Test with a breadboard and few LEDs, then connect directly.

    Wiring is as follows:

    • Pi to LED Data in

    • Power supply 5V to 1N4001 diode anode (side without the stripe)

    • 1N4001 diode cathode (side with the stripe) to LED 5V

    • Power supply GND to Pi GND

    On to the next stage: SPI setup

    Progress Effects

    Progress can be tracked as well, to display more detailed status

    Each progress effect has some standard options, to customise them. Individual effects have additional options, listed alongside them.

    Standard Options

    • Enabled

    • Progress Colour The colour to indicate the progress of whatever event is happening.

    • Base Colour

      The base/background colour of the progress indication.

    In addition, there are two global options:

    • Reverse the direction of the progress bar

    • Base temperature Heating/cooling progress bar will make '0' the temperature specified. Suggested value is just below room temperature, so that the progress bar starts closer to the end of the strip.

    Events

    Printing Progress

    Matches the progress bar in OctoPrint's UI, on your LED strip.

    Heating Progress

    Triggered when a blocking heating command (M109 or M190) sent to the printer.

    Additional options:

    • Index of tool to track Leave this at 0 for single extruder printers, for multiple extruder printers you can choose a single tool to track.

    • Enable tracking tool heating

    • Enable tracking bed heating

    Cooling Progress

    Triggered on print success, this will display the progress of the printer while it is still cooling.

    Additional options:

    • Track cooling on bed or tool Select one, since they usually cool down at the same time.

    • Cooling temperature threshold The temperature when cooling tracking should stop

    Don't set cooling tracking below room temperature, or this effect will never end!

    OctoPrint container
    https://gist.github.com/cp2004/5e32b021fca66e7167039a1737fd7f21
    SPI setup guide
    volumes:
     - octoprint:/octoprint
     - /boot/config.txt:/boot/config.txt
     - /boot/cmdline.txt:/boot/cmdline.txt
    privileged: true

    74AHCT125 GND

  • 74AHCT125 pin 1OE

  • Pi GPIO 10 to 74AHCT125 pin 1A

  • 74AHCT125 pin 1Y to LED Data in

  • Power supply 5V to:

    • 74AHCT125 VCC

    • LED 5V

  • Power supply GND to LED GND

    pinout.xyz
    GPIO 10
    GPIO 10
    SPI Setup
    Wiring with no shifter
    Wiring with a level shifter
    Wiring using a diode

    LED Strip Configuration

    Detailed descriptions of the LED Strip Configuration dialog.

    This documentation aims to explain all of the settings in the LED Strip Configuration dialog, so you can make the most use of them.

    Setting

    Value Type

    Explanation

    Strip Type

    Selection

    The type of strip you have connected, for a complete list see supported hardware

    Max Brightness

    Percentage

    The maximum brightness the strip should reach in any effect.

    DMA Channel and PWM channel will remain available for editing using config.yaml, just in case you need to change this. You probably won't.

    Number of LEDs

    Number

    I hope this one is obvious enough 🙂

    GPIO Pin

    Number

    The pin that the LEDs are connected to. This should be BCM GPIO 10 for normal operation, other pins are available when OctoPrint is run as root and can use PWM - though this is explicitly not recommended for security reasons.

    Frequency

    Number

    Frequency to drive the LEDs at. This should be 800 000 in normal use, some older strips may require different values.

    DMA Channel

    Number

    (Not available in the UI)

    Do not change the DMA channel if you do not know what you are doing.

    This should be 10 in normal use, other values can cause severe problems.

    Invert Pin output

    Checkbox

    Invert the signal from the Raspberry Pi. Useful if your setup uses a level shifter that inverts the signal, it can be inverted again to make it the right way around in the end.

    PWM Channel

    Number

    (Not available in the UI)

    Internal PWM Channel. Irrelevant to the plugin since it uses SPI in most cases.

    3rd Party Apps and Integrations

    WS281x LED Status is compatible with 3rd party apps, find out more here!

    Native Integration

    These apps have built in support for WS281x LED Status, allowing you to control your LEDs directly within them. Thank you to their respective developers for implementing support!

    OctoApp has built in support for buttons that can turn your LEDs on and off or activate the 'torch' mode. It also has support for the 'automatic torch on when viewing the webcam' feature, so you can see your prints easily. See a quick demo of this in action, check out the video below:

    App developer interested in creating a native integration? Checkout the to get started.

    Non-native integration

    Not all apps can integrate with every plugin, so many of them choose to support instead. This allows you, as the user to define custom controls that use these commands as you wish and use them in a variety of 3rd party apps.

    Here are some examples of apps that support Host @ Commands:

    Found a cool plugin or other 3rd party software that uses action commands? Please contribute to the list!

    OctoApp
    REST API documentation
    Host @ Commands
    OctoDash
    OctoLapse
    PSU Control

    OctoLapse Flash

    Describes how to use the torch effect to simulate a flash for OctoLapse.

    Using WS281x LEDs to create a flash for a timelapse

    By using the power of @ commands it is very easy to make your LEDs react to other plugins that use GCODE scripts. For example, to make the LEDs flash for the timelapse, to light it up, you can use the following settings:

    • Enable 'Torch mode is a toggle' in the WS281x LED Status settings, and set the torch effect to solid colour & bright white (and colour will do, but white is the most common!)

    • OctoLapse Custom Camera Gcode Scripts

      • Before snapshot:

      • After Snapshot

    That's it! Run OctoLapse in test mode to test it out.

    @WS_LIGHTSON
    @WS_TORCH_ON
    @WS_TORCH_OFF
    @WS_LIGHTOFF; (Optional) Turn the lights off afterwards

    Printing Effects

    The core of the plugin, the most used feature to find the status of your printer.

    The plugin reacts to several events to display printing effects. For each of these effects, they have similar settings:

    • Enable Whether the effect will run or not

    • Effect One of the available effects

    • Colour The primary colour to run the effect. Note this is ignored in some effects.

    • Delay The length of time to wait between each frame of the effect.

    Some events also have some specific settings, these are detailed alongside them.

    Events

    • Startup

    • Printer Connected/Idle

    • Printer Disconnected

    • Print Success

    Effects

    All the standard effects available, with fancy visualisations!

    Solid Colour

    Sets all LEDs to one colour, forever.

    Colour Wipe

    Wipes colour across the strip pixel by pixel, then clears it pixel by pixel.

    Colour Wipe V2

    Wipes colour pixel by pixel, as above, but to clear it turns around and heads backwards.

    Pulse

    Fades brightness up and down. Looks better in real life than the visualisation below!

    Bounce

    Sends a pulse of light bouncing from one side of your strip to the other.

    Solo Bounce

    Sends just a single pixel from one side to the other, bouncing about.

    Rainbow

    Cycles all the LEDs through the rainbow together.

    Rainbow Cycle

    Rainbow that cycles across the strip, so a full rainbow is across the whole strip at once.

    Crossover

    Two pixels bouncing in opposite directions, crossing over in the middle.

    Random

    Sets all LEDs to a random colour, then changes a random pixel, to a new random colour

    Bouncy Balls

    A physics based effect, simulating 2 balls bouncing up and down. Looks great on longer strips (and shorter ones too...!).

    Unfortunately creating the simulation for this effect didn't work, so is unavailable for now. Sorry!

    Features

    The configuration for the features tab under the plugin's settings

    Here's all the details of the additional features of the plugin, so you can effectively configure them.

    Torch

    The torch button can be turned on or off to clear up navbar space if you don't want it. It has the same settings as standard effects but with some added extras for a manual trigger.

    Using @ commands to trigger the torch can enable cool integrations with other software, such as OctoLapse.

    Toggle Mode

    The torch button or turns the torch on permanently, until it is turned off. This blocks any other effects.

    Timed Mode

    The torch button starts a timer to turn off after configurable length of time.

    Active Times

    The LED strip will turn on at the start time, off at the end time. Potentially useful if you don't want them on overnight.

    Make sure your system time is set on the server. If you want to change this run sudo raspi-config on the Pi.

    This currently does not support the end time being later than the start time, since it will end up with all the LEDs being off.

    M150 Intercept

    Enable intercepting and using M150 commands. If not checked, these commands will be sent to the printer.

    For documentation of the command, please see the

    Debug Logging

    Debug logging logs a lot more information about the effect runner process. This will help massively when reporting issues on Github, so please enable it when reporting issues!

    @ command
    M150 Intercept documentation page.

    This effect has configurable 'Return to idle' time in seconds. Set to 0 to disable returning to idle.

  • Print Paused

  • Print Failed

  • Printing

    • This effect will override the print progress effect.

  • M150 Intercept

    WS281x LED Status will intercept M150 commands to control the LEDs.

    Commands should be formatted as such:

    M150 [P{intensity}] [R{intensity}] [G{intensity}] [B{intensity}] [W{intensity}]

    Parameter

    Explanation

    P

    Brightness, max 255. If not included, defaults to maximum brightness in the settings

    R

    Red intensity, max 255.

    G

    All of the parameters are optional, and can be included in any order. If an option is not included, its value is 0 - as a result sending an empty M150 command will turn the LEDs off.

    It's not recommended to send an empty M150, and instead use to turn the LEDs on and off.

    Examples:

    What does the W parameter do?

    On a standard RGB WS281x strip, the W parameter sets an equal value of R, G and B on the LEDs.

    If you have an RGBW strip and enable the 'Use dedicated white' setting, the W parameter will control the white LEDs only.

    Sending any of R, G or B with the command takes priority over the W.

    Utilities

    There are various utilities available to help with using the plugin.

    These utilities are provided for convenience, I make no claim they are 100% accurate.

    LED Strip Test

    Requires M150 intercept to be enabled & printer to be connected. This is due to a small shortcut, which is adjusted in a future version.

    Press the 4 buttons to check that each segment of your LEDs are working. Useful if the colours are showing wrong, some LEDs don't work or anything hardware related. Each button sets that colour to maximum intensity, to isolate the individual colours.

    OS Configuration Test

    The popup box will run a configuration test on your OS. It tests for the same things that the , to allow you to verify everything is OK down the line.

    At any time, you can run a test of the above settings, using the configuration test dialog. When you run the test, it will tell you if all of the steps are filled in correctly, and if they are not, prompt you to fix it with a click of a button.

    This data is also logged to octoprint.log on startup, to help me with diagnosing issues reported to rule out this configuration being the problem.

    Power Calculation

    Calculates the approximate power consumption of the LED strip. Useful to work out if your power supply is up-to-the task.

    The nominal value included by default is 40mA, since this is what I have found to be most common. Brighter LEDs take more power, so adjust to what you think is right for your strips.

    Host @ Commands

    The plugin reacts to a number of @ commands, this will tell you the details.

    From :

    @ commands (also known as host commands elsewhere) are special commands you may include in GCODE files streamed through OctoPrint to your printer or send as part of GCODE scripts, through the Terminal Tab, the API or plugins. Contrary to other commands they will never be sent to the printer but instead trigger functions inside OctoPrint.

    The plugin reacts to some different @ commands, listed below:

    REST API

    Documentation for the plugin's API, which can be used to create custom controls etc. in other services.

    The plugin implements a , which enables external access to the plugin's functionality.

    It has a single endpoint, supporting a get request and posting a command.

    SimpleAPI Get

    GET http://octopi.local/api/plugin/ws281x_led_status

    initial setup wizard does

    Turns lights off.

    @WS_TORCH

    Activates the torch mode, for timer mode

    @WS_TORCH_ON

    Turn torch on, for toggle mode

    @WS_TORCH_OFF

    Turn torch off, for toggle mode

    These commands can be used in g-code scripts, or in custom controls in apps - see here for instructions for OctoRemote, or the guide on how to create a timelapse flash in OctoLapse which also uses @ commands.

    Command

    Explanation

    @WS_LIGHTSON

    Turns lights on, same as pressing switch in navbar.

    OctoPrint's documentation

    @WS_LIGHTSOFF

    Green intensity, max 255. Can also be U for Marlin compatibility.

    B

    Blue intensity, max 255.

    W

    White intensity, max 255.

    @ commands
    M150 R255 G255  # Sets LEDs to yellow
    M150 G238 B255  # Sets to light-ish blue
    M150 W100       # Sets to white, at 100 intensity
    M150 R255 P200  # Sets LEDs to red, at 200 brightness
    Get current state of the plugin, which includes the light status and the torch status.

    Headers

    Name
    Type
    Description

    X-Api-Key

    string

    A valid OctoPrint API key.

    {
      "lights_on": false,
      "torch_on": false
    }

    SimpleAPI Command

    POST http://octopi.local/api/plugin/ws281x_led_status

    Send commands to the plugin, to make it do something.

    Headers

    Name
    Type
    Description

    X-Api-Key

    string

    A valid OctoPrint API key

    Request Body

    Name
    Type
    Description

    command

    string

    The command to be sent to the plugin. See commands below.

    See also the SimpleApi docs for details about how the request should be structured.

    Commands

    Command

    Parameters

    Explanation

    lights_on

    None

    Turn the LEDs on

    lights_off

    None

    Turn the LEDs off

    lights_toggle

    None

    Toggle the LED state

    torch_on

    SimpleAPI as provided by OctoPrint

    Troubleshooting Guide

    This page aims to list common problems people have with the plugin. Please read it before opening issues.

    This is going to be an ever-evolving page, as I learn of common issues people identify when setting up the plugin.

    Got something to contribute? You can send a PR to edit this page, just click the 'Edit on GitHub' button. All contributions are welcome, and you will help someone else out!

    What type of issue are you facing?

    These questions aim for self-diagnosis - there is no guarantee that your problem will be listed!

    No LED Output at all

    First things first, make sure that your OS configuration test passes - the LEDs do not usually work without these tests passing.

    I restored an OctoPrint backup to a new install, but the LEDs no longer work?

    It is likely that the OS level config is incorrect. To fix this, please head to the OS Configuration Test section (under 'Utilities') to run a test and fix the configuration.

    No LED output on a new Raspberry Pi log has 'Unsupported board' errors

    The dependency the plugin relies on needs to be updated for every new Raspberry Pi board. This often happens quickly, but your install may be outdated. You can manually upgrade the dependency to the latest version:

    This needs to be done from within your OctoPrint install's virtual environment. On OctoPi, this would be ~/oprint/bin/pip.

    Little/no LED output when not using a level shifter

    Some strips do not like 3.3V signals, and if you do use 3.3v (without a level shifter) then please keep the wires to the LEDs fairly short to avoid voltage drop. Alternatively, use a level shifter if it seems that you are suffering from this issue.

    No LED output when using a GPIO touchscreen

    Some GPIO touchscreens (and possibly some others?) use SPI to process data. This conflicts with this plugin's use of SPI to drive the LEDs and as a result you may not be able to use both.

    Errors in the log file are similar to this:

    Unfortunately, there is nothing you can do about this. If you know what you are doing, you may be able to run the LEDs using PWM but please note that this requires root access to the Raspberry Pi and for security reasons this is not recommended for OctoPrint.

    Unstable LED output, flickering and changing colours.

    LEDs flicker and change colour loads

    You need a common ground between the LEDs, power supply and the Pi - this is the number one cause of flickering. Please check the to see how it should be done. You can also see the .

    Random flickering of LEDs, unstable signal

    Adding a 470Ω resistor in the signal line can help. Some guides recommend this, in my experience it is not always required. Worth a try if you have unstable signal to the LEDs.

    More unstable signal fixes

    Mixed reports that using a sacrificial LED on a short wire (to avoid voltage drop) can be beneficial for the LED strip. See for more details. This solution is untested, only linked because it might be useful. Support for skipping the first LED on the animations is in the next release of the plugin.

    Stable LED output but the colours are wrong

    The colours of my LEDs are wrong

    Make sure you have the correct order of RGB strip selected in the strip settings. You can use the LED Strip test to help debug this issue quickly. The colour order and strip type you were sold is not necessarily what works, do not hesitate to change the strip type settings until it works!

    After booting the Pi & OctoPrint, LEDs turn solid white and do not recover

    My current theory behind this issue is bad power supply to the Raspberry Pi, which will create a throttled and unstable system. This can impact the precise timing the LEDs require and means they only display white.

    To fix the issue, please use an adequate power supply with your Raspberry Pi. See the for details on the specification for power supplies for different models.

    Generic plugin issues

    Can't find the plugin after installation

    Make sure you restart the OctoPrint server, and reload the web interface. You should see the wizard pop up, or the light/torch icon in the navbar. I have had some reports of caching meaning the configuration wizard does not show.

    Plugin does not load on my device

    This plugin requires a Raspberry Pi to run. It should run on any Linux-based OS on any Raspberry Pi, and it has detection mechanisms in place and will not load if the device it is installed on is not a Pi. This is logged, so you will see an explanation in the octoprint.log file if this is the case.

    If you are using docker, then make sure you have followed the page to get the plugin to run.

    {
      "lights_on": false,
      "torch_on": false
    }

    None

    Turn the torch mode on

    torch_off

    None

    Turn the torch mode off. Only available if torch mode is configured as toggle.

    test_os_config

    None

    Begin an OS configuration test. Asynchronous, data is returned on the socket

    test_led

    color

    Set the LEDs to the configured HTML RGB colour, color should be a full 7 character hex (eg. #ff00ff)

    No LED output at all
    Unstable LED output, flickering, random colours
    Stable LEDs but colours are wrong
    OctoPrint plugin issues - plugin not loading or similar
    See the OS Configuration Test docs.
    wiring guide
    example video in this issue
    Link to the relevant issue report.
    this Hackaday article
    Raspberry Pi documentation
    Setup In Docker
    pip install -U rpi-ws281x
    ws2811_init failed with code -13 (Unable to initialize SPI)