The lpd8806 is only 7bit - which means we drop the low bit when writing out. (And the scaling drops a bit as well)
I think I know why the HSV takes longer to show colors but @Mark_Kriegsman will have to comment more on that. But I believe there’s code in the hsv conversion to do a more perceptual than linear scaling, which results in more of the lower end of brightness values blacked out.
I’m going to review all that code today with some value-range and integer precision notes at each step. I’ll share what I find, and let folks know if a code change is warranted, or just explicit documentation.
At the low end of the LEDs brightness range, there just aren’t very many steps, and rounding a nonzero number down to zero … happens.
The thing that paul is seeing has nearly as much (if not more) to do with the perceptual scaling stuff that the HSV code does internally. (Where the brightness ramp from 0-255 is mapped to roughly a power law distribution of brightness increases - but mark knows the specifics of how that scaling is setup in the HSV code better than I)