Eink display improvements

Testing out a T-Echo. When you switch screens, you get the inverted next screen, then all black, all white, all black, all white, then back to the next screen. I think it takes over a second. It takes a while to scroll through multiple screens. Maybe it should just go black, white, next screen, and cut the time in half. The inverted next screen probably should have been inverted current screen, but the all black and all white should take care of the old image.

The screens need to be refreshed multiple times to produce the image without greying.

"
An e-ink screen showing the “ghost” of a prior image
Another limit is that a shadow of an image may be visible after refreshing parts of the screen. Such shadows are termed “ghost images”, and the effect is termed “ghosting”. This effect is reminiscent of screen burn-in but, unlike it, is solved after the screen is refreshed several times. Turning every pixel white, then black, then white, helps normalize the contrast of the pixels. This is why several devices with this technology “flash” the entire screen white and black when loading a new image.[citation needed]
Electronic paper is still a topic in the R&D community and remains under development for manufacturability, marketability, and reliability considerations.[citation needed]""

https://forum.sparkfun.com/viewtopic.php?t=32791

1 Like

I’d still guess that the first change should have been the negative of the previous image, and not the negative of the next image. Does anyone know off the top of their head if the negative next image is what a popular library does that has been around a while, or is this manually being called from Meshtastic specific code?

We are using this library for drawing:

The code is called from our EInkDisplay class. I bet there are lots of great improvements that could be made on how the eink display is updated. In particular, currently we turn the display completely off between updates (to keep power usage minimum) but most of those artifacts would go away if we left the display powered. So it would be great if you (or anyone here) wants to become the "Meshtastic eink expert :wink: " and figure out best practice. I bet it would mostly be a matter of:

leave the display on for up to 5 seconds after each screen draw (so that if the user is pressing buttons things look nice). After 5 seconds of no updates, turn the display off (to keep power use low).

Cool?

That black white screen flicker behaviour is also typical of not using partial refresh updates or having a e-ink display that does not support partial updates. (e.g RAK14000 2.13 inch b/w e-Ink)

I added support for 3 e-ink displays with partial update support for the RAK6431, I do not have a T-ECHO and my changes did not work with the existing T-ECHO implementation (its display has added backlight)

Here is a video of a 2.9 and 4.2 inch with faster screen transitions using partial updates and still powering off the e-ink when not used

Purchase links


200x200
1.54 inch e-paper display high resolution 200x200 partial refresh fast speed GDEW0154M09

296x128
2.9 inch e-paper display SPI Support for partial refresh 4 grayscale e-ink module screen GDEW029T5D

300x400
4.2 inch e-ink panel SPI interface 4 Grayscale buy e-paper display partial refresh GDEW042T2

Epaper HAT Connection Adapter Board for E Ink Display

2 Likes

If you’d ever like to post videos onto the meshtastic YouTube channel, PM me. Happy to put anything up there.

1 Like