Dedicated Multicolor LED Plug
-
What about control of more complex RGB led arrays such as neopixels?
-
What about control of more complex RGB led arrays such as neopixels?
Why do you think that functionality should added to a 3D printer controller?
-
β¦ play Doom on PanelDue while printing?
-
Printrbot sells one here which is included on the Simple Pro. I think the Delta Go also uses a neopixel ring.
Basically I'd like to have statuses indicated something like this:
-
Idle: white/blue
-
Heating Up: 'breathing' fade from blue to red
-
Printing: white
-
Error: flashing red
EDIT: Here's the implementation in Printrbot's Marlin fork: https://github.com/Printrbot/Marlin/blob/prod-platformio-2017/src/botlight.cpp
-
-
It is really hard not to want a lot of bling on the printer.
Especially if it is useful bling telling the status. -
I am all for bling if it can be accomplished with out addin to the cost for everyone who does not want bling
In this case, looking at neo pixels and 3.3V systems:
https://learn.adafruit.com/adafruit-neopixel-uberguide/power#driving-5v-neopixels-from-3-dot-3v-microcontrollersIT looks like a short run of neo pixels may be able to work with a 3.3V system, provided and external ~3.7V supply was used to light the pixels or a 3.3V to 5V level shifter was used with a 5V supply.
Looking at this page
https://learn.adafruit.com/adafruit-neopixel-uberguide/advanced-coding
It implies the NeoPixels need an 800Khz signal for communication. This is well within the capabilities of the Duet, however the firmware would need to adapted to provide support (so a request to add to the firmware wish list. The advantage to adding support for neo pixel is that it only requires one logic pin to set a number of LEDs. The disadvantage is that it then limits us to using neopixels (or compatibility) rather than any old RGB leds.
-
I'm just feeling my age.
Idle = nothing's moving - I don't need to look at a Blue/White LED to tell me that.
Warming up = I've started a print but nothing is yet moving - why do I need a fading Blue to Red LED to tell me that?
Printing = the b***dy thing is moving back and forth and there is hot gooey filament coming out - I need a white LED as well???
Error = I have a horrible mess of plastic on the print bed - I can see it perfectly well without it being illuminated by a flashing Red LED.Thoughts of a grumpy old manβ¦.............
-
I have some RGBW neopixels I'll be connecting to my printer today. I'll be driving them with a separate nano or trinket (I have a few of each around). At first, there will just be some pre-programmed loops I can switch through with a button. They're powered off of a separate 5v supply so it has enough current.
I see two options for how to decide what to display on them:
-
- use the RPi running my webcam to scrap rr_status, and change the LED display based on that by sending GPIO signal to the arduino's pins. This allows a lot of different settings and functions, and can auto disable them when the duet's off. More complex coding.
-
use gcode to send signal to pins on the duet, connect them to the arduino to indicate status. (I can power the nano off of the same 12v power as the duet, same ground). This would let me change the LED state via gcode to indicate different printer conditions. However, I'm not sure how many pins I can use to do this. Is there a way I can enable / disable signal on the GPIO pins using gcode?
-
-
Is there a way I can enable / disable signal on the GPIO pins using gcode?
https://duet3d.com/wiki/G-code#M42:_Switch_I.2FO_pin
https://duet3d.com/wiki/Using_servos_and_controlling_unused_I/O_pins -
Very handy, thanks Jackal.
I think, at least at first, controlling status via gcode using m42 will be the easier of the two options, though it won't give me quite as cool of results (no way to slowly increase the color to be more red as the temperature warms up, for instance)
Sill, allows me to do some cool things very easily.
-
If I were to want to scrape status, would I be better using the pi to pull rr_status, or should I connect it via serial and poll status that way? (curl grabs rr_status nicely for parsing, so was thinking I'd go that route)