zerowriter / zerowriter1

126 stars 20 forks source link

Cracking the 4in2 v2 (2.2) partial refresh latency #5

Closed zerowriter closed 4 months ago

zerowriter commented 5 months ago

So after contacting waveshare to order some more displays... I have learned that the 2.1v display I used is no longer available (as of a month ago)

Which means -- unless you are a lucky person who snagged a 2.1 display -- you'll be working with a lesser performant display board. You can tell by looking at the back of your display board, it will have a version number (rev 2.1 or 2.2)

I'm no expert at display drivers, but I am pretty confident that this could be cracked. The panel seems to be the same, but the flashed firmware on the driver board itself is different. In particular, it looks like the partial update lookup tables are hidden / built in to the firmware. Which is probably by design from waveshare for panel life/stability.

The original 2.1 software let me get at the partial update lookup tables, and that was the trick to squeezing the extra performance.

I've got my hands on a 2.2 display now and have started working with it -- some small modifications have it running well enough to be pretty reasonable. But I am very picky, since I've spent so much time working and iterating on the 2.1 driver. I like fast.

Not sure if anyone out there is in to this kind of thing, but it would be great to have other people digging in to this.

vcruzdesigns commented 5 months ago

Thank you for working on this! Would love to hear updates as it develops since I have a Rev2.2 display and I too would like fast.

richterlevania3 commented 5 months ago

Hi, could you provide with your working code for the v2.2 display? I want to test the writer and partial refresh is not a priority right now for me.

EDIT: Scratch that, got it working. Yeah, it does write each letter very fast, but then it refreshes the whole display 3 or 4 times. Unusable. How can I get in touch with you @zerowriter ?

vcruzdesigns commented 5 months ago

@richterlevania3 While zerowriter gets the v2.2 driver out, I was able to get partial display updates working with a different method. It's in my fork of jacobsmith's feature/refactor branch on my profile.

richterlevania3 commented 5 months ago

@richterlevania3 While zerowriter gets the v2.2 driver out, I was able to get partial display updates working with a different method. It's in my fork of jacobsmith's feature/refactor branch on my profile.

Is there anything that must be setup or done differently? I cloned your repo and started with "python3 main.py" inside the examples folder, but nothing happens. Zerowriter one starts up fine.

vcruzdesigns commented 5 months ago

Hmm, that's odd. Running 'sudo python3 main.py' should work as that's what I'd been doing.

On Fri, Feb 2, 2024 at 03:56 richterlevania3 @.***> wrote:

@richterlevania3 https://github.com/richterlevania3 While zerowriter gets the v2.2 driver out, I was able to get partial display updates working with a different method. It's in my fork of jacobsmith's feature/refactor branch on my profile.

Is there anything that must be setup or done differently? I cloned your repo and started with "python3 main.py" inside the examples folder, but nothing happens. Zerowriter one starts up fine.

— Reply to this email directly, view it on GitHub https://github.com/zerowriter/zerowriter1/issues/5#issuecomment-1922766188, or unsubscribe https://github.com/notifications/unsubscribe-auth/BEOZ5LJ4HNYRAGTAV7DN3O3YRRPYDAVCNFSM6AAAAABBQANIPGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMRSG43DMMJYHA . You are receiving this because you commented.Message ID: @.***>

richterlevania3 commented 5 months ago

Can you check paths and tell me what you changed from zerowriter?

zerowriter commented 4 months ago

closing this as the new branch has the edited driver for rev 2.2

https://github.com/zerowriter/zerowriter1/tree/waveshare_2.2