sqfmi / Watchy

Watchy - An Open Source E-Ink Smartwatch
http://www.sqfmi.com
MIT License
2k stars 334 forks source link

[solved] compatible display issue (Waveshare) #182

Open ITCactus opened 2 years ago

ITCactus commented 2 years ago

since there is no available screen replacement as for now at sqfmi shop, i tried to order smth. compatible... Waveshare 12561 looks similar... and i hoped it's fully compatible, taking into account that in GxEPD2 it's mentioned alongside with GDEH0154D67. but it's apparently not. while UI and watchface draws ok at first flash, the partial refresh does not handled properly, so you can not see the navigation through menu, or accelerometer screen at all. only screens that are rendered with the full refresh, not partial. hence no ui refresh on watchface. and the worth, after return to watchface from menu, all the values are displayed with default values (e.g. time "00:00", date "00 2000").

@sqfmi, is it possible to get the Waveshare 12561 work with Watchy?

ZinggJM commented 2 years ago

Most likely you have a DEPG0150BN. It needs a wavetable loaded to registers for differential update.

ITCactus commented 2 years ago

@ZinggJM could you please explain it, or point me to some example? i'm not sure if it's "GDEP0150BN". mine is literally like this one Waveshare 12561 with "v2" label. and if i understood it correctly, this display is supported by "GxEPD2" anyway. but i had to override in the code some flags to make it draw with the full refresh every time, to make it usable somehow. it works really awful with watchy, as it took about 3-4 sec. to redraw (not 2sec, like declared in the specs).

ZinggJM commented 2 years ago

Ok, take a look at the inking on the flex connector. Is it different from the picture on the Waveshare site? e.g. FPC8101? See also https://github.com/ZinggJM/GxEPD2/blob/master/examples/GxEPD2_Example/GxEPD2_display_selection_new_style.h //#define GxEPD2_DRIVER_CLASS GxEPD2_150_BN // DEPG0150BN 200x200, SSD1681, TTGO T5 V2.4.1

ITCactus commented 2 years ago

Ok, take a look at the inking on the flex connector. Is it different from the picture on the Waveshare site? e.g. FPC8101?

yes, the only text on the flex connector is "FPC-8101". so, it's not "literally like that one"

ZinggJM commented 2 years ago

Then you have a DEPG0150BN. It is made by DKE. Support for that panel has been added recently to GxEPD2, See https://github.com/ZinggJM/GxEPD2/blob/master/README.md

I need to fix that name in the comment of GxEPD2_display_selection_new_style.h

ITCactus commented 2 years ago

@ZinggJM thank you! after changing "GxEPD2_154_D67" to "GxEPD2_150_BN" it works with a partial refresh! and i see, that full refresh time in the code is indeed about 4 sec full_refresh_time = 4000; // ms, e.g. 3825000us

mrsav25 commented 1 year ago

@ZinggJM thank you! after changing "GxEPD2_154_D67" to "GxEPD2_150_BN" it works with a partial refresh! and i see, that full refresh time in the code is indeed about 4 sec full_refresh_time = 4000; // ms, e.g. 3825000us

Can I ask, where did you make this change to your overall Watchy code to make this work? I'm trying the same with the same Waveshare panel with the same number on the ribbon.

ITCactus commented 1 year ago

Can I ask, where did you make this change to your overall Watchy code to make this work?

it's in "/src/Watchy.h" and "/src/Watchy.cpp"

attaching the patch for that GDEP0150BN-patch.diff

mrsav25 commented 1 year ago

Can I ask, where did you make this change to your overall Watchy code to make this work?

it's in "/src/Watchy.h" and "/src/Watchy.cpp"

attaching the patch for that GDEP0150BN-patch.diff

Worked for me, thanks for the fast reply