OLED Faded Over Time?

I’ve had my EON from the Kickstarter campaign so a while now. The display functions correctly and doesn’t “go dark” at any point…the text is just really, really faint - basically unreadable.

Has anyone else experienced their OLED fading over time?

I have as well-it probably would have helped if the screen would have slept until you did a quick button press to wake it briefly and check the status. Leaving it on constantly by default was probably not the best way to ensure longevity.

I’ve been using the scripts that @NHHiker wrote for some time now. There is a line “screensaver=120” in the OLED section of the /etc/argoneon.conf file. I’m not sure what, if anything, it does.

The screensaver is a holdover from the original scripts, and only really works if the screen stays the same…

Ugh…I thought maybe that was the case. Not sure how big a lift this would be but I’ll go ahead and ask…is this something you would consider adding?

As simple way to reduce OLED wear is to set the screensaver time to a much shorter period than the screenduration, e.g. 10s / 600s.
Then the screen is switched off after 10s, after another 590s it is switched on and the next info screen is shown for 10s, and so on. Pressing the button will light up the display after a short delay, resp. toggle through the screens.
I have not tested yet if there’s a limit to the value of screenduration.

Seems like that will work…

Any ideas as to how you would want this to LOOK? I can figure out the details if I get what you want…

If I may throw in my 2 (Euro)cts - what about this:

  • after the service is started, the display may show a first screen (e.g. time & date) for some seconds (screensaver timeout), then turns off until the button is pressed.
  • The 1st button press turns on the display and again shows the first screen, further button presses cycle through the screens (if done before the screen times out and is switched off again). Timeout counter is reset with every key press.
  • once the button is not pressed for a full timeout period, the machine returns to the state after service start, i.e. screen dark and back to 1st screen.
1 Like

I verified that the following setting in argoneon.conf work:

screenduration = 60
screensaver = 30

So basically every screen will show for 30 seconds, and then due to the screen saver will blank out to for 30, then the next screen will show…

screensaver sets how long the current screen can be shown before the screen will blank, and screenduration is how long to pause on the same screen.

I have my EON’s OLED rotating between five screens. My ideal scenario would be an option for the OLED to behave like a true monitor screensaver would. After a configurable amount of time…say 600 seconds…if there has been no button press, blank the OLED screen. A single tap on the button wakes the display up and starts the rotating between screens. When there has been not been a button press for the 600 seconds, blank the OLED screen. Essentially, press the button if you want to keep looking at it, otherwise, it blanks.

That’s what I’d like but anything you’re willing to do to create something to accomplish something even close to this would be much appreciated.

1 Like

I’ll take a look… I have been avoiding the button as there are a bunch of magic numbers detailing which press was it, short, long etc…

Okay so how does this sound:


  1. Display screens as usual
  2. At a specified time, blank the screen and stop future displays
  3. When the user presses the button, start a screen rotation again… and start the process all over again.

If NOT ENABLED (i.e. how it actually works today)

  1. Display screens as usual
  2. if the screen saver time is less than the display time, blank at screen saver
  3. once screen display time is up, display new screen (awaking up screen if needed).

That sounds perfect!

Perfect for me as well…

Okay, great.

Just an FYI… up until last August I was a full time Software Engineer, and that company shutdown the US operations… so I became a Computer Science Teacher at the local High School…

Starting to prep for classes so it might be a little bit.

I have a few superstar students… so if you have more suggestions, I may make then “extra credit…”


1 Like

My OLED display too was fading through overuse. The screen display timeout never seemed to activate, so I investigated the script in /etc/argononed.py.

The code at the head of the main while loop in the display_loop() proc resets the screensavermode and screensaverctr variables every time the display cycles.
Commenting-out the two lines shown below allows the display cycling to continue without interrupting the screensaver. Pressing the button (screen) re-enables the display.

 while len(screenenabled) > 0:
        if len(curlist) == 0 and screenjogflag == 1:
            # Reset Screen Saver
            ## sp comment-out the next two lines....
            ## sp ## screensavermode = False
            ## sp ## screensaverctr = 0

            # Update screen info
            screenid = screenid + screenjogflag
            if screenid >= len(screenenabled):
                screenid = 0
        prevscreen = curscreen
        curscreen = screenenabled[screenid]
1 Like