cp2004 / OctoPrint-WS281x_LED_Status

Add some RGB LEDs to your printer for a quick status update!
https://plugins.octoprint.org/plugins/ws281x_led_status
GNU Affero General Public License v3.0
111 stars 26 forks source link

[Feature Request] #110

Closed farbefreak closed 3 years ago

farbefreak commented 3 years ago

Is your feature request related to a problem? Please describe.

Also support single LEDs without WS IC Describe the solution you'd like I would like to use normal "dumb" led stripes to display the state/progress of the print.

Why should this be implemented?

Not everyone needs full blown pixels to display simple status. It would be nice to support PWM on the GPIO to drive RGB LED stripes / single LEDs or andons (same as trafficlights but for machines). This would make it possible to mount a industrial andon on top of a printer an show the state with simple blinking patterns. PWM would be nice to have but is not a "must", for the typical 3 color (red/green/orange) andon.

Simple would be:

Fade Orange->Green = Heating Green = Printing -> all good Red blinking = Fault while probing, Print abborted/ error Orange = attention needed, filament empty Everything Blinking = Print finished Light mode = everything on to see better with the Webcam

Additional context

https://www.thingiverse.com/thing:4129700 Something like this could be mounted

cp2004 commented 3 years ago

Hmm, it does kind of go against the name of the plugin, WS281x LED...

I don't really want to implement this into this plugin. Supporting these strips is a bit of a pain, since it requires re-writing a lot of the underlying effect code, settings, and you start to get feature diversion where some things work with some settings and others that don't. It gets confusing enough typing it, let alone maintaining it.

There are existing solutions - https://plugins.octoprint.org/plugins/ledstripcontrol/, https://plugins.octoprint.org/plugins/PCA9685LEDStripControl/, https://plugins.octoprint.org/plugins/hardwarepwm/ - for sure, they do not do as much as this plugin does, and could probably do more - but there's not that much interest when WS281x provides so much more in terms of control. Users have shown that WS281x strips are most popular, so that's where the development time will go.

If someone else wanted to implement this - they could go for it. I wouldn't mind if they used this plugin as a starting point either.