• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

Monitor Unburn Utility

Kreij

Senior Monkey Moderator
Joined
Feb 6, 2007
Messages
13,817 (2.07/day)
Location
Cheeseland (Wisconsin, USA)
I left an LCD monitor at work with a static image on the screen over the holidays (about two weeks) and of course it burned in (image retention).

After reading about fixes that do, and do not work, it seemed like the best answer was to force the monitor to cycle back and forth between a completely white screen and a completely black one.

Thus I wrote the little utility below called MonitorUnburn_WF. When you launch it is displays a full black screen and then full white with a change interval of six seconds. The program will keep the system alive so that power settings do not stop it and it will prevent the screensaver from launching (at least it should). This should work for an LCD monitor, LCD TV or Plasma TV to which you have your computer connected.

Instructions :
1) Launch program.
2) Let it run for however long is needed.
3) Hit ESC to exit.

Code:
using System;
using System.Runtime.InteropServices;
using System.Timers;
using System.Drawing;
using System.Windows.Forms;

namespace MonitorUnburn_WF
{
    public partial class Form1 : Form
    {
        [FlagsAttribute]
        public enum EXECUTION_STATE : uint
        {
            ES_SYSTEM_REQUIRED = 0x00000001,
            ES_DISPLAY_REQUIRED = 0x00000002,
            ES_CONTINUOUS = 0x80000000,
        }

        private const uint SHOW_SCREEN = 64;

        [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        public static extern EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE esFlags);

        [DllImport("user32.dll", EntryPoint = "GetSystemMetrics")]
        public static extern int GetSystemMetrics(int which);

        [DllImport("user32.dll")]
        public static extern void SetWindowPos(IntPtr hwnd, IntPtr hwndInsertAfter,
                     int X, int Y, int width, int height, uint flags);        

        System.Timers.Timer t = new System.Timers.Timer(6000); // 6 second interval

        public Form1()
        {
            InitializeComponent();
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            this.TopMost = true;
            this.BackColor = Color.White;

            // Make it full screen so it even covers the taskbar
            SetWindowPos(this.Handle, IntPtr.Zero, 0, 0, GetSystemMetrics(0), GetSystemMetrics(1), SHOW_SCREEN);

            Cursor.Hide();

            // Tell system that this thread needs the system awake. Should prevent screensaver from launching.
            SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS
                | EXECUTION_STATE.ES_DISPLAY_REQUIRED
                | EXECUTION_STATE.ES_SYSTEM_REQUIRED);

            t.Elapsed += new ElapsedEventHandler(t_Elapsed);
            t.Enabled = true;
        }

        void t_Elapsed(object sender, ElapsedEventArgs e)
        {
            if (this.BackColor == Color.White) this.BackColor = Color.Black;
            else this.BackColor = Color.White;
        }

        private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == (char)Keys.Escape)
            {
                Cursor.Show();
                Application.Exit();
            }
        }
    }
}

I ran it on the monitor which had bad retention for about 24 hours, and the burn-in is almost gone. I'll leave it run over the weekend to see if I can get rid of it completely.
Depending upon how bad the monitor is burned-in, the required run time could be minutes, hours or days. Some retention is permanent, so results may vary.
Please test and let me know how it works for you.

Compiled using .Net Framework 4 Client.
The reason it is named "WF" is that this is the windows form version. I wrote a DirectX version but it kind of sucks and the executable is much larger.
 

Attachments

Last edited:
works for me.
 
Works for me as well! :toast:
 
What about the one I seen on internet that flashes the screen like hell in lot of pixels from different colours? I know it's for pixel unburning but could it do the same job as your software to remove image retention? I used your software to see if I had dead pixels in my TV. Thanx :)
 
I always find it funny when people argue that it is impossible for LCDs to get a burnt in image.
 
How old was the monitor?

EDIT: Anyway screensavers man! It's why they are there! :p
 
Last edited:
I always find it funny when people argue that it is impossible for LCDs to get a burnt in image.

Even for older CRT it was possible. :P
 
Working fine here, tried it on 2 systems will try it on the laptop later. It all so let ya know if your need clean your screen too hehe.
 
What about the one I seen on internet that flashes the screen like hell in lot of pixels from different colours? I know it's for pixel unburning but could it do the same job as your software to remove image retention?

Yes it could. How effectively I don't know.
There is a lot of conflicting information about what works the best and there does not seem to be a consensus on exactly what causes it. The potential fix, however, seems to be to "exercise" the pixels.

So after extensive high-tech research (read: a wild guess) I came up with two conclusions;
1) Driving the pixels from full intensity to none, and back, would seem to be most effective.
2) My program should not cause epileptic seizures if you watch it.

I used your software to see if I had dead pixels in my TV. Thanx :)

Well there you go. So far this little app has 3 functions;
- Try to eliminate image retention.
- Check for dead pixels.
- Let's you know if your screen is really dusty.
(like AsRock, that was one of the first things I noticed when I ran it. :D )

Thanks for the feedback guys, and if anyone uses it to try to un-burn a monitor I would love to hear the results.
 
I've got a couple at the office I'll try some time next week. :toast:

EDIT: And yea it shows me how dirty my screen is...lol My 6 year old points at everything... lol bad thing is she gets it from me..lol
 
Please test and let me know how it works for you.

Compiled using .Net Framework 4 Client.
The reason it is named "WF" is that this is the windows form version. I wrote a DirectX version but it kind of sucks and the executable is much larger.


My dell monitors have similar built-in. If you power on the monitor without any cables but power, it will cycle through black, white, red, green, and blue. I think it does each color as inside the pixel are individual color emitters, and using those colors "exercises" all the little bits.



You would think though, that each monitor might have a slightly different base color for those emitters?
 
Yes it could. How effectively I don't know.
There is a lot of conflicting information about what works the best and there does not seem to be a consensus on exactly what causes it. The potential fix, however, seems to be to "exercise" the pixels.

So after extensive high-tech research (read: a wild guess) I came up with two conclusions;
1) Driving the pixels from full intensity to none, and back, would seem to be most effective.
2) My program should not cause epileptic seizures if you watch it.



Well there you go. So far this little app has 3 functions;
- Try to eliminate image retention.
- Check for dead pixels.
- Let's you know if your screen is really dusty.
(like AsRock, that was one of the first things I noticed when I ran it. :D )

Thanks for the feedback guys, and if anyone uses it to try to un-burn a monitor I would love to hear the results.

Maybe not epilectic seizure but high rate of depresion to bipolar people who already see life in black & white. :P
 
I don't know, Dave. I can't find any really credible information on this.
Does using color variants work better than B->W->B? I don't know.
It's almost impossible to test in a reproducible manner as it depends on the type of screen and how badly it's burnt in.

In some cases with TVs, simply playing full motion video will fix it (similar to what a screensaver does). In other cases that doesn't do diddly. In some cases unplugging the monitor for a couple of days does the trick, but not always (this seems to be the least effective method). Apple has had problems with their retina displays and they recommend putting up a full white screen for the same duration that caused the burn-in. (shrug)

If anyone can find some definitive data on this I will be happy to modify the program.
 
I think it depends on what emitters are used to produce white, and that's going to vary whether you use IPS to TN panels, perhaps.


What I can say for sure is that this function in Dell monitors is there expressly to combat burn-in, so if they have added those colors as well, it must have some reason behind it.


Would be cool it you could touch base with Dell and find out more about their own thing. I've wondered myself, but that was the explanation I was given by Dell techs when I worked for Dell directly.
 
I wonder if that feature in the monitor is to prevent burn-in or to eliminate it if it occurs, or both.
Obviously cycling colors would completely prevent it, and it would also help remove it, but my question would be, "Is it as effective or efficient (time wise) for getting rid of it as a BWB cycle?"

I doubt I could get that kind of answer from Dell. Maybe I'll call the engineering department at MIT.
I'm sure someone there could use an idea for a thesis. :)
I have a good friend who has a couple of Masters' degrees from there. He may know someone I could talk to.
 
Seems to be starting to work on my 24", probably have to run it overnight. Is there any way to get it to run on a 2nd monitor?
 
I never thought of that, Johnspack, but that is an excellent suggestion.
I will look into it, but I have no way of testing it as I have no multi-monitor setups.
If you are willing to test it for me I'll be happy to work on coding it.
 
Sure, I'll test it out!
 
Okay. I have the code at work so I'll try to get to it tomorrow when I'm there.
Let me know how it does with the 24" if you leave it run overnight.
How bad was the burn?
 
It's a fairly noticeable line across the top of my screen that corresponds with the top dark blue bar in firefox, or in my case, waterfox. When I shut my browser down I can see it, and it's annoying!
Edit: god I do a lot of surfing.....
Edit2: it is noticeably lighter now and I only ran it for like 10 mins
 
If it's correcting itself that fast I would think an hour or so should eliminate it completely.
 
Yes, I suspect an hour or 2 should almost do it. Do have some noticeable ghost lines on my 2nd monitor too, but they are not bad, so I assume this will fix it too.
 
You could run it on the other monitor if you switch primary monitors, but that is up to you.
I will look into some kind of command line option to launch it on secondary monitors.
 
Command line switch would be fine. Easy enough for me to make a batch file for each, or even a script.
 
I didn't want to add a UI to the program unless I had to, to keep it as lightweight as possible.
Click icon or a command line with options.
I had thought about a command line option to change the interval, but without any real data on whether that would make any difference I'm not sure it's of any use.
I don't know anyone who will let their monitor cook just to test it. :D
 
Back
Top