I can’t see anywhere what the resolution is for hue, saturation and brightness control on the led_strip.set_hsv() instruction, using MicroPython and WS2812 LEDs. I am trying to create a slow, smooth lighting fade, but have so far been unable to do this. Testing seems to suggest that with v=0.08 the LED is completely off, but v=0.09 switches it on quite bright. Is this a fundamental of the board? Or maybe a problem with the led strip I’m using. I also tried using led_strip.set_rgb, but if anything this seems even worse. I would appreciate any advice anyone can give me.
Hi!
I’m not entirely sure what you trying to do here, but I think you might be encountering a common problem with LED strips- the LEDs don’t light up unless they are above a certain brightness, so even though amounts like 0.08 are possible in terms of the software, that’s not enough to actually light an LED.
I guess you are talking about something like a dimmer switch effect where lights fade from full brightness to nothing.
Thanks for the reply.
Not really a dimmer, but I do indeed want to fade the pixels down to zero. Trying to recreate accurate colours, which demands very low and precise settings for the RGB outputs. I have done this successfully with RGB (not Neopixel) strips using a Pi Pico, and thought the Plasma2040 board would let me have similar control for Neopixels, but maybe I’m expecting too much
Best regards, Ian
Hmm. Shouldn’t it be the hue and saturation that you are very carefully adjusting to get very accurate colors? V is just brightness.
Hi
Unfortunately, hue and saturation only get you part way there. The shade of a colour - how light or dark it is - are determined by the brighness. To put it another (possibly more complicated !) way, colour can be thought of as a three dimensional space. Hue and saturation represent two dimensions, while the brightness controls the third
I have established that neopixels have 8 bit resolution (256 steps) for each colour, but I am starting to think that the plasma board doesn’t use all 8 bits.
Ian
Plasma would certainly appear to support 256 bits using led_strip.set_rgb allows you to set values from 0 - 255. To be honest I think it would say that what you are trying to do is very difficult with neopixels. Have you managed to get it working with another board? I’m super curious about what you are trying to do
Hi, sorry for the late reply, I’m on holiday and Internet access is patchy. I’ll try to keep the explanation brief. I’m a member of a model railway club and we’re building a large exhibition layout. I took on reponsibility for the lighting - initially the lights in all the buildings. We want them to gradually come on to simulate dusk. I have been able to do this using a RasPi together with some Led driver boards connected by SDI. We then decwe want to dim the overall layout lighting, which I was able to do using the same boards (12 bit brightness resolution) but the code didn’t integrate well with the original code (I’m new to coding, so maybe the problem is with me). We also decided to try to simulate a sunset, with colours varying over time. Hence the need for smooth colour fades.I started to use the PWM function on a Pico board, together with RGB led strips, with power driver circuits. I can achieve the kind of colour fades this way, but we have problems making it look realistic, partly because of the discrete red, green blue leds, and partly because we get the same colours uniformly across the “sky”. I thought the Plasma board, with neopixels, would solve both problems, but haven’t been able to achieve the smooth colour fades we need. Sorry, that wasn’t very brief!
This sounds like a fascinating project. I’d love to see some pictures of it.
The good news is that I don’t think the Plasma2040 is the problem. Each LED (RGB) can be set from to 0 - 255. Even taking into account that LEDs fail below ~20 due to insufficient power supply, you have access to 13,144,256 colours (RGB), and you can fade them in and out very very gradually using code.
My advice would be that you consider diffusal or some other way of making the LEDs not directly visible. A sheet of baking paper is the cheapest diffuser there is, and will help you control the hue (hue = distance between LED and baking paper)
In this video, for example, I’m using a clouded plastic tube (20mm diameter, 2mm thickness) from clear plastic tube . co. uk. Even though the LEDS are pressed right up against the inner wall, the fade is smoother.
You’ll need to code this, to get a little variation across the sky. It wouldn’t be a very difficult job (depending on what exactly you want…) but if you’re a beginner it would take some time.
I wonder what time of RGB led strips they were. Controllable? Or did you just lower the voltage?
I need to test this further when I’m back home. I don’t seem to be seeing 255 steps from each colour. Using the Pico board, and standard RGB strips, the PWM function switches the LEDs fully on or off, the fading is achieved by varying the on/off duty cycle, and this gives (I think) 64k colour steps. But the only way to vary the colour across the strip is by using neopixels (or another kind of addressable LED. I will certainly try using a diffuser, at the moment this is all just in a bench-test stage.
Share your code when you’re able to and I’ll see if there’s anything i can do to help.