Go Down

Topic: OLED display; should screen be refreshed every few seconds, opinion. (Read 316 times) previous topic - next topic

exiledyorkie

Hello,

I'm taking a project away for a few days on a trip and I'm planning on displaying the temperature and humidity on an oled display, as my son has asthma and I'd like to monitor the room which he'll be sleeping in.

It's a simple project, temp and humidity displayed on an 128x64 oled. Not much changes other than the values.


Should a refresh setting be put into the loop in order to avoid screen burn? If so could anybody help me out with the code as when I search online I can't seem to find the right answer, or maybe I'm not searching for the correct wording.


Thank you in advance

david_prentice

All modern displays whether GLCD, TFT, OLED have their own internal display memory.

You write once.   The screen will display that data forever.

For the best experience,   you only update when something changes.    And you only update the minimal area of the screen.

Yes,  an OLED will "screen burn" if you display the same data continuously.   So there is a good argument for changing the picture every few hours.

David.

exiledyorkie

All modern displays whether GLCD, TFT, OLED have their own internal display memory.

You write once.   The screen will display that data forever.

For the best experience,   you only update when something changes.    And you only update the minimal area of the screen.

Yes,  an OLED will "screen burn" if you display the same data continuously.   So there is a good argument for changing the picture every few hours.

David.
Ah okay, so rather than some sort of refresh, the whole screen should be changed to something else.

Maybe I should use some sort of screen saver.

david_prentice

Yes,   you can replace with different screen saver(s).   Or you can just switch the display off.   It will wake up with the same picture.

Regarding text.   You can just move the text every few hours.

Your original question implied redrawing the whole screen every few milliseconds.    Since the data / picture will be unchanged (most of the time) it is a pointless exercise.

You can still execute your loop() continuously.   Just set a flag when data changes.
Only redraw when the flag is set.

David.

exiledyorkie

Yes,   you can replace with different screen saver(s).   Or you can just switch the display off.   It will wake up with the same picture.

Regarding text.   You can just move the text every few hours.

Your original question implied redrawing the whole screen every few milliseconds.    Since the data / picture will be unchanged (most of the time) it is a pointless exercise.

You can still execute your loop() continuously.   Just set a flag when data changes.
Only redraw when the flag is set.

David.
I did mean to redraw the whole thing and yes not much would change.

Okay that's brilliant. I may go down the screen saver option with an interrupt to view the data.


I was going to get the data to scroll across the whole screen but that just didn't work out.

david_prentice

You can vertical scroll most OLEDs in software.   Some will horizontal scroll or diagonal scroll in hardware.    This will prevent any screen burn.

Life is much easier if you say which OLED controller you are using.    Monochrome, Grayscale or Colour.

David.

exiledyorkie

You can vertical scroll most OLEDs in software.   Some will horizontal scroll or diagonal scroll in hardware.    This will prevent any screen burn.

Life is much easier if you say which OLED controller you are using.    Monochrome, Grayscale or Colour.

David.
You're right, it's a monochrome (white text) oled SSD1306 128x64 and I'm using the Adafruit library

I managed to get it to scroll so far but not fully across the screen.

rainwulf

If you can, invert the whole thing on a regular basis. So for an hour it would be white text on a black background, then an hour later, black text on a white background.

Even if its done once every few hours on a simple counter, or even once a day, as long as the pixels all get their chance to be black and white you wont get specific burn in.

exiledyorkie

If you can, invert the whole thing on a regular basis. So for an hour it would be white text on a black background, then an hour later, black text on a white background.

Even if its done once every few hours on a simple counter, or even once a day, as long as the pixels all get their chance to be black and white you wont get specific burn in.
I never considered that to be honest. Sounds like a good idea. Thank you

Go Up