thank you for your reply!
I've tried a couple of things, but I suspect the switching via setInterval is not fast and/or precise enough.
Here is what I've tried so far (trying to get all pixels at 50% brightness):
and this one:
var c = 0;
I thought the last one would be a little bit faster (by removing setTimeout) but nothing changed.
As for a firmware mod, this would be awesome of course!
A nice way to implement it, would be perhaps in your graphics library, while creating the ArrayBuffer:
g = Graphics.createArrayBuffer(5,5,4);
this way we could manage images with 16 levels of gray/brightness directly.
Would this make sense?
The micropython firmware supports 9 levels of brightness (0 is off) and visually it works pretty well, the other official firmware (the js/typescript thing) "supports" 255 levels of brightness, but this really does not work, and all kind of weird things happen (probably the out-of-phase problems you mentioned?)