I am currently writing software that makes use of a SSD1351-based display (from Waveshare).
I have noticed an issue most visible with a dark blue background: when some brighter colors are on the same row (at least visually, it seems to be), the dark blue background becomes brighter.
In the picture, only the bottom right quarter should be different, the rest should be uniform dark blue.
While looking for an explanation, I found this diagram in the SSD1351 datasheet:
... which, with my limited understanding of electronics, made me even more puzzled as to why this could be happening. (Noise on VLSS? Current leaking through to the LEDs?)
I do not think that I made any error when wiring this display up, and I have noticed the same effect both when driving this display using an Arduino and (as of now) a Raspberry Pi Pico.
I have been trying to tweak timing and voltage settings through SPI commands, but nothing has made the issue go away:
- Reducing the contrast settings (which is controlled by a global + per-channel current limit): The issue persists even when the display is dim.
- Tweaking the oscillator frequency and the clock divisor: Even when scanning so slow I can see the scan to the naked eye, the issue is still visible.
- Tweaking timings: The length in clock cycles of the different pre-charging phases described in the SSD1351 datasheet.
- Tweaking voltages (having tried pretty much every related commands specified in the SSD1351 datasheet).
I am trying to fix this issue, but I don't know where to go from now. To narrow down my questions:
- Is this expected behavior for a PMOLED display or for this driver?
- Is this possibly due to a design flaw of the display module sold by Waveshare, as opposed to being a driver or panel issue? If so, why?
- Can I do anything about it right now, with this display module (without compensating pixel data to minimize the effect)?
- If it is a design flaw, since I may end up designing a PCB that would have one of those display units with a flex cable connected, what should I look out for?