Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bricked LG Monitor #419

Open
Slothinger opened this issue May 19, 2024 · 6 comments
Open

Bricked LG Monitor #419

Slothinger opened this issue May 19, 2024 · 6 comments
Labels
dpms input source VCP feature x60 monitor specific problems with particular monitors

Comments

@Slothinger
Copy link

Slothinger commented May 19, 2024

Hi, i bricked my LG 38WN95CP-W by trying to switch the input with ddcutil. Now it stays black with no osd.
I tried to do a hard reset (remove power + wait + press the button 10 sec) and i also tried the factory reset option in ddcui.
My pc recognizes the display but it stays black with no sound over hdmi. (tried hdmi, dp, and usbc)

Is there any chance to bring it back to life?

ddcutil detect --verbose
Display 1
   I2C bus:  /dev/i2c-3
      Driver:                                nvidia
      I2C address 0x50 (EDID) responsive:    true 
      I2C address 0x37 (DDC)  responsive:    true 
      Is LVDS or EDP display:                false
      Is laptop display by EDID:             false
      Is laptop display:                     false
      /sys/bus/i2c/devices/i2c-3/name        NVIDIA i2c adapter 5 at b:00.0
      PCI device path:                       /sys/devices/pci0000:00/0000:00:03.1/0000:0b:00.0/i2c-3
   EDID synopsis:
      Mfg id:               SAM - Samsung Electric Company
      Model:                SyncMaster
      Product code:         1415  (0x0587)
      Serial number:        H9XZ503660
      Binary serial number: 1297691188 (0x4d593234)
      Manufacture year:     2010,  Week: 18
      EDID version:         1.3
      Extra descriptor:        
      Video input definition:    0x80 - Digital Input
      Supported features:
         DPMS active-off
         Digital display type: RGB 4:4:4 + YCrCb 4:4:4
         Standard sRGB color space: False
      White x,y:        0.312, 0.329
      Red   x,y:        0.640, 0.330
      Green x,y:        0.300, 0.600
      Blue  x,y:        0.150, 0.060
      Extension blocks: 1
   EDID source: I2C
   EDID hex dump:
              +0          +4          +8          +c            0   4   8   c   
      +0000   00 ff ff ff ff ff ff 00 4c 2d 87 05 34 32 59 4d   ........L-..42YM
      +0010   12 14 01 03 80 34 20 78 2a ee 91 a3 54 4c 99 26   .....4 x*...TL.&
      +0020   0f 50 54 23 08 00 a9 40 81 80 81 40 81 00 95 00   .PT#...@...@....
      +0030   b3 00 01 01 01 01 28 3c 80 a0 70 b0 23 40 30 20   ......(<..p.#@0 
      +0040   36 00 06 44 21 00 00 1a 00 00 00 fd 00 32 3f 1e   6..D!........2?.
      +0050   51 11 00 0a 20 20 20 20 20 20 00 00 00 fc 00 53   Q...      .....S
      +0060   79 6e 63 4d 61 73 74 65 72 0a 20 20 00 00 00 ff   yncMaster.  ....
      +0070   00 48 39 58 5a 35 30 33 36 36 30 0a 20 20 01 b4   .H9XZ503660.  ..
   VCP version:         2.0
   Controller mfg:      DDC communication failed
   Firmware version:    DDC communication failed
   Monitor uses invalid feature flag in DDC reply packet to indicate unsupported feature.
   Current dynamic sleep adjustment multiplier:  1.00

Display 2
   I2C bus:  /dev/i2c-4
      Driver:                                nvidia
      I2C address 0x50 (EDID) responsive:    true 
      I2C address 0x37 (DDC)  responsive:    true 
      Is LVDS or EDP display:                false
      Is laptop display by EDID:             false
      Is laptop display:                     false
      /sys/bus/i2c/devices/i2c-4/name        NVIDIA i2c adapter 6 at b:00.0
      PCI device path:                       /sys/devices/pci0000:00/0000:00:03.1/0000:0b:00.0/i2c-4
   EDID synopsis:
      Mfg id:               GSM - Goldstar Company Ltd (LG)
      Model:                LG HDR WQHD+
      Product code:         30541  (0x774d)
      Serial number:        304NTGYA7791
      Binary serial number: 347791 (0x00054e8f)
      Manufacture year:     2023,  Week: 4
      EDID version:         1.4
      Extra descriptor:        
      Video input definition:    0xb5 - Digital Input (DisplayPort), Bit depth: 10
      Supported features:
         DPMS standby
         DPMS suspend
         DPMS active-off
         Digital display type: RGB 4:4:4 + YCrCb 4:4:4 + YCrCb 4:2:2
         Standard sRGB color space: True
      White x,y:        0.312, 0.329
      Red   x,y:        0.688, 0.309
      Green x,y:        0.258, 0.670
      Blue  x,y:        0.147, 0.062
      Extension blocks: 2
   EDID source: I2C
   EDID hex dump:
              +0          +4          +8          +c            0   4   8   c   
      +0000   00 ff ff ff ff ff ff 00 1e 6d 4d 77 8f 4e 05 00   .........mMw.N..
      +0010   04 21 01 04 b5 3c 22 78 f9 42 f1 b0 4f 42 ab 25   .!...<"x.B..OB.%
      +0020   0f 50 54 21 08 00 d1 c0 61 40 01 01 01 01 01 01   .PT!....a@......
      +0030   01 01 01 01 01 01 3d c2 00 a0 f0 40 3a 60 30 20   ......=....@:`0 
      +0040   3a 00 6f 6e 31 00 00 1a 00 00 00 fd 00 30 90 fa   :.on1........0..
      +0050   fa 63 01 0a 20 20 20 20 20 20 00 00 00 fc 00 4c   .c..      .....L
      +0060   47 20 48 44 52 20 57 51 48 44 2b 0a 00 00 00 ff   G HDR WQHD+.....
      +0070   00 33 30 34 4e 54 47 59 41 37 37 39 31 0a 02 bc   .304NTGYA7791...
   VCP version:         2.1
   Controller mfg:      Myson
   Firmware version:    3.9
   Monitor uses invalid feature flag in DDC reply packet to indicate unsupported feature.
   Current dynamic sleep adjustment multiplier:  0.00
ddcutil -d 2 getvcp all
VCP code 0x02 (New control value             ): One or more new control values have been saved (0x02)
VCP code 0x0b (Color temperature increment   ): Invalid value: 0
VCP code 0x0c (Color temperature request     ): 3000 + 35 * (feature 0B color temp increment) degree(s) Kelvin
VCP code 0x0e (Clock                         ): current value =    50, max value =   100
VCP code 0x10 (Brightness                    ): current value =    25, max value =   100
VCP code 0x12 (Contrast                      ): current value =    70, max value =   100
VCP code 0x14 (Select color preset           ): User 1 (sl=0x0b)
VCP code 0x16 (Video gain: Red               ): current value =    50, max value =   100
VCP code 0x18 (Video gain: Green             ): current value =    50, max value =   100
VCP code 0x1a (Video gain: Blue              ): current value =    50, max value =   100
VCP code 0x1e (Auto setup                    ): Auto setup not active (sl=0x00)
VCP code 0x20 (Horizontal Position (Phase)   ): current value =     0, max value =   100
VCP code 0x30 (Vertical Position (Phase)     ): current value =     0, max value =   100
VCP code 0x3e (Clock phase                   ): current value =    50, max value =   100
VCP code 0x52 (Active control                ): Value: 0x00
VCP code 0x60 (Input Source                  ): DisplayPort-1 (sl=0x0f)
VCP code 0x62 (Audio speaker volume          ): current value =    30, max value =   100
VCP code 0x6c (Video black level: Red        ): current value =   128, max value =   100
VCP code 0x6e (Video black level: Green      ): current value =   128, max value =   100
VCP code 0x70 (Video black level: Blue       ): current value =   128, max value =   100
VCP code 0x72 (Gamma                         ): 0x7800 - Mode: White absolute adjustment (sl=0x00), gamma=2.20 (sh=0x78)
VCP code 0x7a (Adjust Focal Plane            ): current value =   240, max value = 65535
VCP code 0x87 (Sharpness                     ): current value =    50, max value =   100
VCP code 0x8d (Audio Mute                    ): Unmute the audio (sl=0x02)
VCP code 0xac (Horizontal frequency          ): 48292 hz
VCP code 0xae (Vertical frequency            ): 244.90 hz
VCP code 0xb6 (Display technology type       ): LCD (active matrix) (sl=0x03)
VCP code 0xc0 (Display usage time            ): Usage time (hours) = 1731 (0x0006c3) mh=0xff, ml=0xff, sh=0x06, sl=0xc3
VCP code 0xc6 (Application enable key        ): 0x0068
VCP code 0xc8 (Display controller type       ): Mfg: Myson (sl=0x06), controller number: mh=0x00, ml=0xff, sh=0x00
VCP code 0xc9 (Display firmware level        ): 3.9
VCP code 0xca (OSD                           ): OSD Enabled (sl=0x02)
VCP code 0xcc (OSD Language                  ): Reserved value, must be ignored (sl=0x00)
VCP code 0xd6 (Power mode                    ): DPM: On,  DPMS: Off (sl=0x01)
VCP code 0xd7 (Auxiliary power output        ): Disable auxiliary power (sl=0x01)
VCP code 0xdf (VCP Version                   ): 2.1
ddcutil capabilities -d 2
Model: WN95C
MCCS version: 2.1
Commands:
   Op Code: 01 (VCP Request)
   Op Code: 02 (VCP Response)
   Op Code: 03 (VCP Set)
   Op Code: 0C (Save Settings)
   Op Code: E3 (Capabilities Reply)
   Op Code: F3 (Capabilities Request)
VCP Features:
   Feature: 02 (New control value)
   Feature: 04 (Restore factory defaults)
   Feature: 05 (Restore factory brightness/contrast defaults)
   Feature: 08 (Restore color defaults)
   Feature: 10 (Brightness)
   Feature: 12 (Contrast)
   Feature: 14 (Select color preset)
      Values:
         05: 6500 K
         08: 9300 K
         0b: User 1
   Feature: 16 (Video gain: Red)
   Feature: 18 (Video gain: Green)
   Feature: 1A (Video gain: Blue)
   Feature: 52 (Active control)
   Feature: 60 (Input Source)
      Values:
         11: HDMI-1
         12: HDMI-2
         0f: DisplayPort-1
         10: DisplayPort-2
   Feature: AC (Horizontal frequency)
   Feature: AE (Vertical frequency)
   Feature: B2 (Flat panel sub-pixel layout)
   Feature: B6 (Display technology type)
   Feature: C0 (Display usage time)
   Feature: C6 (Application enable key)
   Feature: C8 (Display controller type)
   Feature: C9 (Display firmware level)
   Feature: D6 (Power mode)
      Values:
         01: DPM: On,  DPMS: Off
         04: DPM: Off, DPMS: Off
   Feature: DF (VCP Version)
   Feature: 62 (Audio speaker volume)
   Feature: 8D (Audio Mute)
   Feature: F4 (Manufacturer specific feature)
   Feature: F5 (Manufacturer specific feature)
      Values: 01 02 03 04 (interpretation unavailable)
   Feature: F6 (Manufacturer specific feature)
      Values: 00 01 02 (interpretation unavailable)
   Feature: 4D (Unrecognized feature)
   Feature: 4E (Unrecognized feature)
   Feature: 4F (Unrecognized feature)
   Feature: 15 (Unrecognized feature)
      Values: 01 06 11 13 14 15 18 19 20 22 23 24 28 29 32 48 (interpretation unavailable)
   Feature: F7 (Manufacturer specific feature)
      Values: 00 01 02 03 (interpretation unavailable)
   Feature: F8 (Manufacturer specific feature)
      Values: 00 01 (interpretation unavailable)
   Feature: F9 (Manufacturer specific feature)
   Feature: EF (Manufacturer specific feature)
   Feature: FA (Manufacturer specific feature)
      Values: 00 01 (interpretation unavailable)
   Feature: FD (Manufacturer specific feature)
      Values: 00 01 (interpretation unavailable)
   Feature: FE (Manufacturer specific feature)
      Values: 00 01 02 (interpretation unavailable)
   Feature: FF (Manufacturer specific feature)

The detect command says something about the "dynamic sleep adjustment multiplier" is this a normal behavior?
Because the display worked while trying the ddcutil commands, but when i went away it didn't wake up from standby anymore.

interrogate.txt

@digitaltrails
Copy link

digitaltrails commented May 21, 2024

Now it stays black with no osd.

I have a different (older) LG monitor 27UL650 with a display controller type Mstar (sl=0x05), controller number: mh=0x00, ml=0xff, sh=0x00. Not sure if that's in anyway similar, but I thought I ask some questions anyway...

Are you saying he little button on the monitor no longer brings up the monitor's internal on-screen-display? That should be independent of the input connection. It should work no matter what the monitor is connected to. If the monitors internal OSD isn't coming up, that may mean the panel, or some part of monitor, is no longer working. Could it be a warranty-type defect kicking in and perhaps only be coincidentally related to ddcutil? In which case you could just send it in for warranty repair reporting that the panel seems dead.

Given you are posting outputs, it seems the monitor is still responding to DDC commands. It seems like the current input source is DisplayPort-1:

VCP code 0x60 (Input Source ): DisplayPort-1 (sl=0x0f)

Experimenting with my own monitor...

If I switch to an invalid input I can definitely use the monitor's internal OSD to switch back (or also use ddcutil to switch back).

I even have a input listed in the ddcutil output which does not actually exist on the back of the monitor and isn't listed in the OSD. Selecting this non-input just results in it naturally resetting to a real input.

One issue I've had is if the nvidia driver loses track of the monitor, I may have to use the GUI NVIDIA Settings->Display Configuration to bring it back online. But the monitors OSD still works in those circumstances, just the PC output is blank.

Sounds like you've tried different cables. Have you tried a different PC/Laptop?

Also, see #241 for info on how to report a problem.

@Slothinger
Copy link
Author

When i press the powerbutton of the monitor, only the button lights up and the display stays completely dark.
This would be a very big coincidence, if the monitor randomly dies when i was messing around with this tool some minutes before.
I dont think its Nvidia related as i tried it with a notebook (intel), android phone over usbc and an old mac. All devices recognize the display. (resolution, power, etc)

@digitaltrails Thank you for your answer and the link! I'll add this file asap to this issue.

Does someone know if there is a different way to get the firmware files for lg monitors? Sadly the support website doesnt list one for this monitor.

I dont know if i can fix this on my own, but i hope i can prevent other users of this monitor to get into the same trouble...

@rockowitz
Copy link
Owner

I'm sorry to hear of your apparently bricked monitor. There have been a few reports of this, but always with brand-X Chinese imports. So I would not give up hope just yet.

I have a few questions and comments.

You say that the problem is associated with using feature x60 to change input source. But you also say that input source switching worked, but the monitor wouldn't wake up after it subsequently went to sleep. This suggests that the problem is not with feature x60.

Were you trying to do something non-standard with feature x60, such as using it in conjunction with features in the mfg range xEO..xFF, or using an alternate source address, as has been described by people trying to reverse engineer Picture-By-Picture, etc.

When diagnosing problems you want to use option --disable-dynamic-sleep . The dynamic sleep multiplier reported (.0.00) is VERY aggressive and can be the source of communication errors, though I don't see evidence of that in your output.

Some monitors will respond to DDC requests no matter which input it is sent on. Others will respond only if the ddcutil command is issued on the currently active input.

It is possible that the brightness value is so low that the monitor is black. Try issuing command ddcutil setvcp x10 100 --dis 2 to turn the brightness up to max.

Some monitors do not use the input source values specified in the Monitor Control Command Set spec, but instead use non-standard values. Play around with alternate values.

@rockowitz rockowitz added monitor specific problems with particular monitors input source VCP feature x60 dpms labels May 26, 2024
@Slothinger
Copy link
Author

Slothinger commented May 27, 2024

I'm sorry to hear of your apparently bricked monitor. There have been a few reports of this, but always with brand-X Chinese imports. So I would not give up hope just yet.

I have a few questions and comments.

You say that the problem is associated with using feature x60 to change input source. But you also say that input source switching worked, but the monitor wouldn't wake up after it subsequently went to sleep. This suggests that the problem is not with feature x60.

When i was trying to switch the input it only went black for half a sec and then it came back to the current input.
I tried some commands with ddcutil and after that the monitor was definitely working, but the first sleep 10 min later or so killed it. mby i changed some power settings or something?

Were you trying to do something non-standard with feature x60, such as using it in conjunction with features in the mfg range xEO..xFF, or using an alternate source address, as has been described by people trying to reverse engineer Picture-By-Picture, etc.

I was trying some commands which are described here:
https://github.com/rockowitz/ddcutil/wiki/Switching-input-source-on-LG-monitors
Something like this: "ddcutil -d 1 setvcp xF4 x0090 --i2c-source-addr=x50 --noverify"

When diagnosing problems you want to use option --disable-dynamic-sleep . The dynamic sleep multiplier reported (.0.00) is VERY aggressive and can be the source of communication errors, though I don't see evidence of that in your output.

Some monitors will respond to DDC requests no matter which input it is sent on. Others will respond only if the ddcutil command is issued on the currently active input.

It is possible that the brightness value is so low that the monitor is black. Try issuing command ddcutil setvcp x10 100 --dis 2 to turn the brightness up to max.

Thx for your help! I'll try this and report back asap!

Edit:

Display 2
   I2C bus:  /dev/i2c-4
   EDID synopsis:
      Mfg id:               GSM - Goldstar Company Ltd (LG)
      Model:                LG HDR WQHD+
      Product code:         30541  (0x774d)
      Serial number:        304NTGYA7791
      Binary serial number: 347791 (0x00054e8f)
      Manufacture year:     2023,  Week: 4
   VCP version:         2.1

root@user-pc:/home/user# ddcutil setvcp x10 100 --dis 2
root@user-pc:/home/user# ddcutil  getvcp x10 --dis 2
VCP code 0x10 (Brightness                    ): current value =   100, max value =   100

Set the brightness but the monitor stays black.

Some monitors do not use the input source values specified in the Monitor Control Command Set spec, but instead use non-standard values. Play around with alternate values.

@digitaltrails
Copy link

I see LG offers OnScreen Control software to control this monitor from MacOS or Windows. Perhaps you could plug it into a MacOS or Windows machine and try you luck with LG's software.

@Slothinger
Copy link
Author

I see LG offers OnScreen Control software to control this monitor from MacOS or Windows. Perhaps you could plug it into a MacOS or Windows machine and try you luck with LG's software.

I already tried messing around with different tools so set the default values like brightness, contrast etc but that didn't help.
I was hoping that the lg onscreen control provides a reset function but it is missing this and many features from the real osd.
The other software i tried was "EnTech Monitor Asset Manager" which had a reset function but that didn't work either.
As the monitor was under warranty i had to turn it in for a repair, so i think we can no longer analyze the problem...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dpms input source VCP feature x60 monitor specific problems with particular monitors
Projects
None yet
Development

No branches or pull requests

3 participants