martinberlin / epaper-weather-station

Collection of examples to read sensors (I2C and others) and publish real-time information with minimum consumption using fast ESP32S3/ESP32 and epaper controllers such as IT8951 or EPDiy
http://fasani.de
Apache License 2.0
35 stars 0 forks source link

Refresh only relevant parts of the digital clock #1

Closed martinberlin closed 2 years ago

martinberlin commented 2 years ago

Save HR / Min and temperature in NVS Update only the relevant section on wake up:

IF (nvs.hour == new.hour) THEN skip display.printf(“%d”, hour)

v1-digitalclock

atc1441 commented 2 years ago

If you got a double buffer with the previous and new content you can simply make a rectangle around the smallest possible area that has changed. That way it is very dynamic and will work on any content

martinberlin commented 2 years ago

Hi Aaron! Yes that 's a great idea. By the way I'm using the fast mode of Lovyan GFX library so it's quite fast (simulates 16 grays but is only doing a monochrome update). But the only issue is that even cleaning the area still leaves some nasty ghosting after 3 or 4 updates so I think every 5th update a full refresh should be enforced. epaper-weather-station-blurred

it8951-HAT-PCB-prototype

Maybe I will just save in a 32 bit NVS the number of starts of the firmware and then make a full refresh like:

if (boot_counter % 5 ==0) display.clearScreen();

Or something alike. Then it will be still fast while keeping the screen clean.

martinberlin commented 2 years ago

6BFE439F-5F70-4338-A40F-BB100287D44A

martinberlin commented 2 years ago

DEXA-C097 + CINWRITE CinwritePCB