This is a known issue from back in 2007:
http://mindplacesupport.com/forum/sh...de)-in-Procyon
The easiest way to reproduce this is to set the segment time to 2:08 (128 seconds) and then pick only one color, set start/end amplitude to 0, and then ramp DC offset from 127 (0 brightness) up to 255 (full brightness) over the course of 128 seconds.
Especially near the beginning, you can see it "stepping" up in brightness roughly once every second. The first step is the most jarring, and the LED goes from 0 to "clearly visible" in a very big jump.
My understanding is that brightness is handled internally as an 8-bit value, and that it's mapped linearly over 255 levels of brightness.
However, my experiments make it seem like there are only 128 brightness levels. If I ramp from DC offset 127 up to 137 over 10 seconds, I can count 10 steps. Thus, there are only 128 brighness levels between DC offset 127 (off) and 255 (full brightness).
If I set frequency to 75 Hz (invisible flicker), fix DC offset to 127, and then ramp Amp from 0 to 10, I count only 5 steps. If I ramp Amp from 0 to 20, I count 10 steps. Thus, there are two increments in amplitude value for every true jump in brightness.
My guess is that there's something going on with the DC offset implementation that is wasting half of the 8-bit brightness space (DC offset 127 is actually 0, and DC offset 0 is being used to represent -127).
Suggested fixes back in 2007 were switching to 12-bit brightness levels or using a non-linear brightness mapping.
Even if you stick to just 127 brightness levels, it does seem like a non-linear mapping would be better here, as many of the brightness levels are "wasted" in the upper end. Jumping from a DC offset of 252 up to 255 is invisible, for example. Even 250 to 255 is almost completely invisible. So we have 5 levels there (or 2 of 128 steps) that are wasted, and could be used to reduce stepping in the low end. The first upper end step that I can actually see is 249 to 255. If I set up two segments that make that jump instantly, I can just barely see it.
Note that it's not just DC offset ramps that have this problem, but also the sine and triangle wave tables. Slow sine/triangle waves can be seen to step on the dim end, and suddenly go out in one big step at the very dimmest end.
I do wonder if there's some limitation of the PWM dimming that would prevent you from using even thinner pulses on the low end. There is a minimum increment size for PWM pulse width based on the processor's clock rate.
Is there any possibility of this getting fixed in a Procyon OS update?
I know it's an old, outdated product, but I just bought one direct from MindPlace. It suits my needs better than the Kasina.
Also, this might sound kinda crazy, but have you thought about releasing the OS source code so that the community can take over maintaining it?
Is there a huge danger of end-users bricking their own devices?
Bookmarks