Hey there,
My PFM3 just arrived today, and I'm really excited to use it more, but there is one issue that prevents me from doing so right now: After using the synth for a few minutes, updating pixels start getting stuck on yellow. Once this starts happening, more and more pixels do the same thing, until text is barely legible. Interestingly, the pixels are only stuck in specific screens, but always around text, or where text could be.
I tried to change the TFT reinit setting to Auto, but whatever that does, it does not change anything.
Is there a way to fix this or at least work around it?
Also are there any plans for a thorough manual or usage video? I'm kinda (very) lost in the menu system.
Thanks!
Edit: The bug must be somewhere around here:
https://github.com/Ixox/preenfm3/blob/40caf9b069527f135fbab60e07c481d0f88e5171/lib/Src/TftDisplay.cpp#L910I sadly can't find out, how and where TFTActions are used, maybe because the github search is trash. I can only assume that there is an issue with the way that the TFTActions are handled. I assume, that there is some kind of cache that tries to reduce the updates, but in this case corrupts pixels in a box around any piece of text. What is even weirder is the fact that it just happens over time. The corruption starts, and more pixels just get added on top of the existing error, as if some buffer was not cleared after use...
Edit 2: I'm on firmware 996, but I also tried 999 (the effects build from that one thread).
Edit 3: I finally found where the tftactions are used:
https://github.com/Ixox/preenfm3/blob/40caf9b069527f135fbab60e07c481d0f88e5171/lib/Src/TftDisplay.cpp#L357How does this work? I can barely understand what's going on... My first guess would be, that the tftmemory is faulty, but only around text? (I did notice some glitching in the env curve editor as well, but I could only notice some at the very top of the box
Edit 4: I think I found something. The only case where "setDirtyArea" is used is whenever a character is written. Could someone build that but with "tftDirtyBits = TFT_PART_ALL_BITS;" instead of setDirtyArea?
Edit 5: Would this even work or would I end up with a screen that then only contains the updated text and nothing else?