Fixing a purple backlight on an HP DreamColor LP2480zx

The HP DreamColor LP2480zx is a top-of-the-line color-critical monitor that retailed for $3500 and features some really impressive specs, such as a true 10-bit IPS panel, hardware-based calibration, and an RGB LED backlight. Unfortunately, these monitors eventually develop a purple/magenta color cast over the entire screen and calibrating with HP's proprietary solution does not fix the problem. I got my hands on one of these monitors on eBay for around $100 (so around 3% of the retail price) due to the aforementioned purple-tint issue and set out to fix it. Here is my journey.

 

The tech

The first question on many people's minds is "why bother?" Aside from the enjoyment of solving problems and tinkering with electronics, this monitor boasts some seriously impressive specs even by today's standards, despite being released way back in 2008. The monitor was developed by HP in collaboration with DreamWorks Animation (hence the name) and was used for color-critical work. Here are some of the goodies:

  • True 10-bit IPS panel which allows for not 50, not 256, but a whopping 1024 shades of gray and a total of over 1.07 billion colors. The modern-day DreamColor monitors are inferior since they use 8-bit panels with dithering (AFRC).
  • RGB LED backlight which allows for adjustments to the white balance of the display without any loss of color resolution and compensation for wear over time (at least in theory... more on this below).
  • Extremely wide color gamut which exceeds "wide gamut" Adobe RGB and nearly meets the Digital Cinema P3 gamut. This monitor will display colors that most monitors simply can't.
  • "DreamColor Engine" which performs hardware-based calibration of the monitor. This is accomplished via matrix multiplier which allows for some rather sophisticated color transformations. Color space presets can be quickly selected via the press of a button and are meant to be programmed in via a proprietary calibration probe and software, ensuring accurate colors throughout the life of the monitor.
  • A-TW polarizer which greatly reduces "IPS glow", where colors appear washed out when viewed off-angle. You can clearly see the difference between a monitor with and without it in the picture at the top of this page.

The problem

The monitor uses an LG LM240WU5-SLA1 panel with an RGB backlight. Since LEDs can age at different rates (which causes colors to drift over time), LG thoughtfully included a color sensor and a color processing chip (Avago HDJD-J822) to maintain uniformity of colors. This allows the rest of the monitor's electronics to not worry about backlight drift – in fact, the backlight module accepts absolute Yxy coordinates instead of RGB for colors, which HP's circuitry uses to set brightness and white balance.

Unfortunately, the sensor in these panels goes bad within a few years. The failed sensor measures excessive amounts of green and compensates by turning down the green LEDs. Since there is no way to set individual RGB values for the backlight using the panel's interface, HP's circuitry is unable to compensate for this. The best it can do is utilize the DreamColor engine to calibrate the LCD panel, but after a certain point, there simply isn't enough green light for it to meet the characteristics of the desired color space and calibration fails. The purple color is seen at all times, including the "Scanning inputs" message that displays as soon as the monitor is powered on.

 

The whole scenario reminds me of a Douglas Adams quote.

The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair.

There is no way for monitors using this panel to adjust individual R/G/B values of the backlight, whether via proprietary calibration solution like the DreamColor or manual adjustment like most other monitors, because the panel simply does not provide the appropriate commands to do so. (Even LG's own W2420R has an RGB adjustment limited to requesting Yxy coordinates, which would be inaccurate due to the failed sensor.) The sensor that was intended to maintain the backlight's color uniformity over time ended up making the problem far worse.

Exploring the color management system

I read through the datasheet of the Avago color chip and determined that it used the sensor's inputs to drive PWM outputs to control the actual backlight. The system normally operates in a "closed loop" mode where requests for a particular color are modified based on what the sensor is reading. At the factory, the system is put into "open loop" mode and an external colorimeter is used to measure actual values; this data is stored in the chip and is used for calculations during normal use.

After disassembling the monitor, the first step was to unplug the sensor from the LED driver board. I didn't have very high hopes but I powered on the monitor. For the first time, I saw a pure white background in the "check video cable" message, instead of a purple-tinted one. Success! Unfortunately this was short-lived, since any attempts at adjusting the monitor's settings (or even leaving it alone for a bit) resulted in each backlight color fading to a single channel within a few minutes. Only a complete power-down of the monitor would bring back the brief white backlight.

One possible solution would be to modify the factory calibration data on the chip. Unfortunately this would be a short-term solution since the color sensor would continue to wear out (and this wouldn't work if the sensor aged too far). I also lack the equipment and skills to remove and reinstall a surface-mounted chip in order to send it the necessary I2C commands, and the datasheet isn't clear on how to format the data.

Another possible solution would be to use a variable resistor to compensate for the sensor's output. I did not have success with this (splicing the resistor into the green channel). Due to the system operating in a closed loop, having the resistor even slightly off would result in similarly invalid results.

I eventually took the whole panel apart and removed the sensor itself. It was labeled "SD-9 94V-D" on one side and "0831" on the other. Unfortunately I could not find any data online about it, so replacing the sensor itself was out of the question. (And even if I could, it would likely have required factory calibration.)

 

Directly controlling the backlight with an Arduino

At this point I realized that the only feasible option was to directly control the backlight via PWM, bypassing the Avago color chip entirely. I had an Arduino at my disposal (which allows for several channels of PWM). Lacking any real tools for surface-mount work, I used an Xacto knife and needle-nose pliers to break the PWM output pins off of the chip, and then (after much trial and error) managed to solder 3 wires to the pads underneath it. This was the point of no return.

 

I wrote up a quick sketch to cycle an RGB LED through the full color spectrum and uploaded it to my Arduino. Then I plugged the Arduino into the monitor's USB hub, attached the wires, and turned it on. I was not expecting much, but to my surprise, the monitor powered up successfully and the "Check signal cable" message displayed with a fading rainbow of colors!

 

The same thing from another angle:

 

Backlight control software

In order to control the backlight, I created a simple Arduino sketch to hold the 3 PWM pins at a specific value, then listen over serial for new values. I also created a front end application to allow easy control from Windows. To keep things simple, I hard-coded default values (which are applied every time the monitor is powered on) but I could improve the functionality by allowing the Arduino to save those settings.

 

Finalizing the build

The Arduino fit nicely into an empty space near the cooling fan, although the USB plug was a bit too long. I held it in place with tape.

 

I ran the USB cable through a small hole I made in the outer casing of the monitor and plugged it into the hub on the side. This provides the Arduino with power and allows the computer to communicate with the Arduino through the uplink port.

 

Limitations

Monitor controls

Since the color chip has been bypassed, the monitor's brightness and white balance controls are no longer functional. The only way to adjust brightness is through the app. The 3D LUT and matrix multiplier are still functional, however, so it should be possible to calibrate the monitor in hardware and use the color profiles. I'm not sure if the official HP Advanced Profiling Solution will still work as I do not own one.

PWM frequency

The Arduino is unable to output a high enough PWM frequency. Thus, the backlight flickers very noticeably unless it's near maximum. Near the lower end of the range, it looks like a strobe light. This is the biggest downside of my solution at this point; perhaps I can find a better microcontroller with a higher PWM frequency.

USB cable

Since the Arduino is powered via USB, and the backlight is now entirely dependent on the Arduino's PWM signal, the USB cable must be connected at all times. This uses up one of the four USB ports on the monitor.

Conclusion

Here is a demonstration of the final product.

 

If you'd like to attempt the mod yourself or look at my code, you may download it here.

I welcome any suggestions for improvement.

Posted on Sunday, December 18, 2016 at 3:05 AM | Permalink

Comments (34)

Unic
Monday, March 13, 2017 at 1:48 PM
Hi,

I have the same issue my LP2480zx. Congratulations for your work.
I want to try your solution.

I'm not samiliar with Arduino but I can solder pretty well, even on those tiny chips.
Could you do a step by step tutorial to perform this repair procedure ?
In particular, identify the points to solder to the Arduino Board.

Regards.
Options: Reply | Quote | Flag / Report

Monday, March 13, 2017 at 9:25 PM
@Unic I used the HDJD-SCR00 datasheet to determine which pins were the PWM outputs (pins 14 through 16, see page 3). I used wire from a floppy drive ribbon cable with some solid wires soldered to the other ends.

For the Arduino, you don't have to solder anything. Insert the solid wires into the Arduino's output pins 9 (red), 10 (green), and 11 (blue), then upload the sketch linked at the bottom of this page and run the included control software.
Options: Reply | Quote | Flag / Report

Unic
Tuesday, March 14, 2017 at 1:57 AM
Hi nookkin,

Thank you.

Indeed, with the datasheet that is more clear to me.

pin #14 (PWN_B) to arduino output pin #11 (blue)
pin #15 (PWN_G) to arduino output pin #10 (green)
pin #16 (PWN_R) to arduino output pin #9 (red)

To be clear, I have to cut the pins 14, 15 and 16 of the chip and after solder theses three wires to the board underneath.

Is any Arduino board compatible with your code or do I have to purchase a specific one ? Even the cheapest ? :D

Thanks again.
Regards.
Options: Reply | Quote | Flag / Report

Wednesday, March 15, 2017 at 8:06 PM
@Unic Correct, you want your wires to connect to the board (and not the chip). Be sure to insulate the wires from the chip so they don't contact the Arduino circuit.

Any Arduino board marketed as an "Uno" should work (whether genuine or knockoff).
Options: Reply | Quote | Flag / Report

Unic
Thursday, March 16, 2017 at 2:15 AM
Hi Nookkin,

I ordered an "UNO R3 ATmega328P Development Board With Boot Loader For Arduino UNO F7" for 3$.

I hope it will do the trick and I'll keep you update on my repair. :D

Thanks again.
Regards.
Options: Reply | Quote | Flag / Report

Unic
Sunday, April 9, 2017 at 3:24 AM
Hi Nookkin,

Wiring job done.

I messed up de-soldering one leg of the chip (one pad broke), so I choose to solder the wires on the smd resistors.

Some pictures of my intervention.

http://reho.st/self/56b3f57409c57da960168f19a928428a1bcca59b.jpg
http://reho.st/self/e2347135991ceb06c4f70746f388c8e74aa6f01f.jpg

After taking this photographies, when bending the wire, one of of theses smd resistor unsticked of the board. The one corresponding to the pin #14 (PWN_B). No luck again.

So I decided to solder the blue wire to the pcb board point near marked as "PWNB". I placed a 1k resistor to this point (replacing like this the smd untiscked) and soldering the wire to this resistor. And it worked fine !

I think this could done to all. Solder a 1k resistor on each PCB points marked as "PWNR" ,"PWNG", "PWNB", and wire to the arduino board from theses resistors. It's an easier and safer way because the solder point are much bigger. ;)

The HP DreamColor LP2480zx colours are now fine. Thanks.

I was not able to use your program "Arduino Dreamcolor.exe". When I launch it. Windows tells me that is not a valid application. I surely miss a step.
Do I have to install another program before launching it ?

Thanks for your work, your dedication and your help, Nookkin. ;)

Regards.




Options: Reply | Quote | Flag / Report

Shin
Wednesday, April 12, 2017 at 9:51 PM
The sensor appears to be as follows:

HDJD-S822-QR999
RGB Color Sensor
Options: Reply | Quote | Flag / Report

Sunday, April 16, 2017 at 3:26 PM
@Unic Make sure you have the .NET Framework 4 installed. Which version of Windows are you using?
Options: Reply | Quote | Flag / Report

Marian
Tuesday, April 18, 2017 at 5:10 AM
Hi i find datashit of sensor http://pdf.dzsc.com/HDJ/HDJD-S831-QT333.pdf
Options: Reply | Quote | Flag / Report

Unic
Saturday, April 22, 2017 at 9:44 AM
Hi Nookin,

I running on Windows XP 32 bits and I have .Net Framework 4 Extended installed.

Regards,
Options: Reply | Quote | Flag / Report

Saturday, April 22, 2017 at 2:33 PM
@Unic Did you try building it? I didn't actually intend to release the binary but it looks like there is one in the "obj" folder. It's possible that the binary is built for 64-bit Windows only (since it's not an actual released exe). I can build you a 32-bit one if you can't get the source code to build on your own.
Options: Reply | Quote | Flag / Report

Unic
Saturday, April 22, 2017 at 3:22 PM
Hi Nookkin,

Sorry, but I do not know how to build a 32 bits release. :/
What software do I have to use ?

Regards.
Options: Reply | Quote | Flag / Report

Gerard
Thursday, May 18, 2017 at 12:01 PM
I do not possess the skill or patience to tackle this. Let me know if you'd like to purchase another monitor.
I have one with the HP Dreamcolor Calibration System tool.
Options: Reply | Quote | Flag / Report

Jarkko Lavinen
Thursday, May 18, 2017 at 2:06 PM
I have 6+ years old LP2480zx. I bought the original in 2008 which stopped working in 2011 and it was replaced by warranty.

I have a poor colour vision, but even I can see the white point has shifted towards purple. Backlight hours is about 13000. I haven't been able to complete the calibration reliably for many year and been to frustrated to even try most of the time. Nowadays the original v1 puck model calorimeter produces wrong calors because its filters have evidently faded. I am now ordering the v2 model which has sealed filters and hopefully longer life.

I would rather consider replacing the sensor chip than doing my own PWM. This requires removing the old sensor chip with soldering station with heat blower and replacing it with new one, perhaps baking it in soldering oven. Another option is to build a new sensor board. The sensor board has one sensor chip, one capacitor and one connector with 5 pins. Shouldn't be totally impossible and it wouldn't have to be pretty.

Yes, changing the sensor chip shifts factory calibration. One could compensate this by adding an adjustable gain voltage follower for each 3 channels. This would be basically be one quad op amp chip and additional parts. The gains would have to be adjusted to match the original sensor chip sensitivies at the time factory calibration. Mismatching sensitivities would show up as white point being in other position than desired.

Kynix at Hong Kong seems to sell HDJD-S822-QR999 sensors at single chip quantities for about USD 5 each, shipping costs USD 35.
Options: Reply | Quote | Flag / Report

Thursday, May 18, 2017 at 9:36 PM
@Jarkko Lavinen Definitely, a successful sensor replacement would preserve more of the monitor's functionality and would avoid the flicker problem I had. If you end up succeeding in doing the sensor replacement, let me know how it turns out!

@Gerard If the price is right I'd consider attempting a different repair (the color chip replacement) on a second one.
Options: Reply | Quote | Flag / Report

Jarkko Lavinen
Tuesday, May 30, 2017 at 6:59 AM
I bought a used DreamColor mark 2 calibrator. Using that I was able to calibrate better than with my old puck but white point was still off from desired. I am surprised the HP/X-Rite calibration software now works when few years ago it failed no matter what I tried.

I used Dispcal from ArgyllCMS to check the white point after calibration and then compensate for the difference between desired and measured white and calculate new coordinates and re-calibrate. Fortunately the HP calibration software allows using custom white coordinates. I had to repeat the calibrate-compensate cycle many times. To get D65 at xy coordinates 313 329, I now use custom values 327 320.

So I don't have immediate need to replace the color sensor. I have nevertheless ordered few sensors from Kynix and I now have SMD rework station. Possibly the change of factory calibration of new sensor chip could be compensated with just using custom coordinates.
Options: Reply | Quote | Flag / Report

Tuesday, May 30, 2017 at 11:20 PM
@Jarkko Lavinen That calibrates it using the LCD. If you display a white background on the monitor and then open the OSD, you'll unfortunately notice that it is purple in comparison.
Options: Reply | Quote | Flag / Report

Ben
Wednesday, August 16, 2017 at 11:01 PM
I'm curious to hear some of your updates. I'm waiting on my Arduino Uno to arrive. I am a complete newb when it comes to electronics, but I'm willing to learn and give it a try.

I just found out about a (now-discontinued) color sensor chip sold by Sparkfun ( https://www.sparkfun.com/products/retired/10904 ) that uses the HDJD-S822-QR999 color sensor, and I wonder if could be used with the Uno (or as Jarkko mentioned earlier, to build a new sensor board) to approach this issue in a different way...
Options: Reply | Quote | Flag / Report

Jarkko Lavinen
Friday, August 18, 2017 at 1:42 PM
I ordered 5 sensor chips. The chip is very small and it is difficult to see where the pin 1 is. Pins 14 and 15 are not connected and this can be seen in a macro shot. Pin 1 is on the left side the same way as in the data sheet.

I have a hot-air rework station but would need a lot of practice with scrap boards until attempting to replace the sensor.

Tried also to get Ookala calibration software (from Sourceforge) working but I does only work the original version of LP2480zx where all traffic went through DDC. Onlu simple commands work now over DDC but table reads and writes do not and crash the monitor. In the newer models there is a proprietary USB-i2c bridge. I have tried to sniff the traffic and but again can only do simple commands.
Options: Reply | Quote | Flag / Report

Peter Mickelsen
Sunday, September 17, 2017 at 9:47 PM
I was able to adjust the backlight manually by cracking open the display and physically tapping on some minus green gel to the sensor ( 1 and 1/2 was pretty close) (Rosco 3308 and 3309).
Options: Reply | Quote | Flag / Report

quiksilver
Tuesday, September 19, 2017 at 10:07 AM
Interested in more updates from you guys. Just got my hands on a lp2465 and lp2480zx and wondering what to do with them. The 2465 has a damaged panel (looks like dead pixels) and the 2480 has the color sensor issue with purple screen. I'd like to just replace the sensor to avoid the screen flicker but not sure how hard that would be and if a hot-air station is required.
Options: Reply | Quote | Flag / Report

Wednesday, September 20, 2017 at 9:15 PM
@Peter Mickelsen That's really cool! Do you have a picture/video of how the monitor worked out in the end?

@quiksilver The sensor itself is on a breakout board as pictured. If you could build an equivalent board and mount the new sensor in its original hole, it should be doable without hot air. Unfortunately I don't know how well it would work if you can't set the factory calibration.
Options: Reply | Quote | Flag / Report

Jimmy
Friday, September 22, 2017 at 1:14 AM
Sorry if I sounds stupid, is the color sensor part of LM240WU5 panel or something HP added later on? I'm trying to consider the possibility to replace the entire panel since I'm not electronic technician. It would be great if you can offer some insight to tech-noob.
Options: Reply | Quote | Flag / Report

Friday, September 22, 2017 at 8:08 AM
@Jimmy it's part of the LG panel unfortunately, and that means that even HP didn't have a supported way to adjust the colors (the panel accepts absolute Yxy color coordinates and relies on the sensor to keep them accurate, even though a faulty sensor just makes the problem worse).
Options: Reply | Quote | Flag / Report

Jimmy
Saturday, September 23, 2017 at 4:33 AM
@nookkin Does that mean if I just replace the panel everything should work fine? The panel itself isn't that expensive so it should be a doable solution for someone who is not tech savvy, like me :)
Options: Reply | Quote | Flag / Report

Sunday, September 24, 2017 at 9:25 AM
@Jimmy Replacing the panel will only delay the inevitable problem and could even have it from the start if the sensor is old enough (not sure if it wears out due to age or amount of light it accepts). At the right price it's worth a shot but when I looked at replacement panels they were around $500 each.
Options: Reply | Quote | Flag / Report

Ben
Saturday, September 30, 2017 at 4:35 PM
How easily did the rear cover of your monitors come off?

I'm following this guide: http://h22235.www2.hp.com/hpinfo/globalcitizenship/environment/productdata/Countries/_MultiCountry/disassembly_monito_20088216127.pdf

On my monitor, it feels as though the back cover is glued on. Is there a trick to removing the rear cover of the monitor?
Options: Reply | Quote | Flag / Report

Saturday, September 30, 2017 at 7:57 PM
@Ben It was a bit of a challenge. Place the monitor face down, remove all screws on the back, then gently pop out the edges of the cover all around by prying between the gap. Once this is done, you should be able to lift the back cover right off -- alternatively, flip it over and pull the front bezel off (but it will then be difficult to flip the monitor over without damaging the LCD). Be careful with the cable connecting the front-panel buttons.

See the image below. Stick your pry tool (a putty knife or flat screwdriver works) under the "lip", pointy end towards the front of the monitor (i.e. downwards if the monitor is lying face down).

Options: Reply | Quote | Flag / Report

Ben
Saturday, September 30, 2017 at 10:37 PM
After finally getting the LP2480zx open (with the help of this video: https://www.youtube.com/watch?v=RgErQwXrVSw), and eventually figuring out where the light sensor was hidden (and boy is it small!), I ended up doing the "Peter M Method" by using one of the Rosco Minus Green gels. I ended up just taping on a little tiny piece of the gel using regular clear packing tape (don't know enough about electronics to know if this is a terrible idea or not).

Plugged the monitor in to test and it works!

Now I just have to summon the patience to put the monitor back together.

For anyone wondering where to get the gels, I ended up purchasing the "Rosco Cinegel Swatchbook" from B&H, and it had more than enough samples to potentially work with.

Thanks to nookkin and everyone else for all the help! Hopefully this monitor will last me a year or two more!
Options: Reply | Quote | Flag / Report

Jimmy
Friday, October 13, 2017 at 2:01 AM
@nookkin I brought the panel on a Chinese site. It took about a week to ship it from China to US. The panel is surprisingly cheap( about$120), but the shipping cost is relatively high($70). I spent three hours to disassemble and put the monitor back, but the result is worth it. Though, the panel has one dead pixel that's only able to show green and white colors. The color looks perfect, sad 3rd gen dreamcolor is total garbage comparing to 2nd gen.

I spent total $300 on this monitor in case you need the reference.
Options: Reply | Quote | Flag / Report

Nuw
Tuesday, November 7, 2017 at 11:07 PM
I recently acquired two of these failed LP2480ZXes, but where exactly is the color sensor located within the monitor and panel? I aim to perform the gel filter mod mentioned in Ben and Peter M's comments and just want to save a bit of time before I take the time and effort to tear these apart.
Options: Reply | Quote | Flag / Report

Wednesday, November 8, 2017 at 7:15 PM
@Nuw It's on the back of the LG panel which unfortunately requires almost complete disassembly of the monitor to get at.



You'll need to remove a metal cover. The sensor is under the white thing with the wires coming out.

Options: Reply | Quote | Flag / Report

Ben
Wednesday, November 15, 2017 at 9:52 PM
Ok, so it's been about a month since I've "fixed" the monitor with the color gel hack, and while it's not perfect (there is still a slight hue), the monitor is much more bearable.

At first, I thought taking apart the monitor and performing this particular fix would be simple, but this monitor is one of the most complicated monitor's I've come across (taking it apart, the amount of hardware involved, working with the sensor itself, and putting it back together). At first I thought if this hacked worked well it would be worth getting a few more monitors as backups. Unfortunately, while this monitor is still one of the best monitors i've ever worked with, the price of newer 4k AdobeRGB monitors is coming down, so I don't think it is as economical of an option as I first thought it would be.

In any case, I'm looking forward to potential updates on other users' solutions!
Options: Reply | Quote | Flag / Report

Nuw
Friday, November 17, 2017 at 11:01 AM
It took me only about an hour per monitor that I had to get it apart. One can expedite the process heavily:
- Remove back and the metal shield screws per usual
- Don't bother removing the mainboard nor the power supply, nor any cables except the one leading to the panel itself in the center of the mainboard and the shielded cable on the left (and disconnect this at the panel side, not the mainboard)
- Remove the USB hub only to get to the ribbon cable for the buttons

The color filter mod was actually rather successful, but I noticed that the white point would need shifting or the display would end up cycling between red and blue in one case. Further, brightness controls were essentially nonexistent. Removing a bit of filter fixed that for me.

My other LP2480ZX also benefited from this mod but still has a haze; I plan to address that with more filter this weekend.

I'm also curious as to how to get internal calibration to work without HP's scarce and questionable i1d2-based calibration solution.
Options: Reply | Quote | Flag / Report

Leave a comment

 
five times one is (Huh?)
Comment moderation is enabled.
Your comment will appear on the page after it has been reviewed.