-
Notifications
You must be signed in to change notification settings - Fork 45
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
LG 29UM69G fails switching input #100
Comments
Displays vary in how they implement DDC when multiple monitors are
attached. Feature code x60 is particularly problematic. For some,
setvcp works only if issued from the device whose input is selected.
That is, ddcutil or ClickMonitorDDC work only if issued on the currently
selected input. For others, setvcp 60 works no matter what the input.
I assume since you mention ClickMonitorDDC that you're running Windows
in a VM. So as a first step, check whether ddcutil setvcp 60 or
ClickMonitorDDC work when used on the currently active input.
DisplayPort connections are also problematic. Can you configure so that
DVI or HDMI, not DisplayPort, is used for the 29UM69G?
Finally, LG monitors, particularly Ultrawide monitors, have been seen to
depart from the DDC standard. See the description of "LG Ultrawide" in
http://www.ddcutil.com/monitor_notes, which includes the following:
"When responding to a Get VCP Feature request, the monitor never
sets the Result Code field of the VCP Feature Reply to Unsupported VCP
Code. Instead, it always reports No Error. For unsupported VCP codes,
all bytes in the response (MH, ML, SH, SL) are set to x00."
So that's the explanation for the x00 response you're seeing. ddcutil tries
to figure out if a display (pathologically) uses an all 0 response to
indicate unsupported, but it's a heuristic test and isn't perfect. If
the answer is yes, that is stated in the monitor description.
The test that is reported by the "Supports DDC" line in the monitor
description has been eliminated. It was a simple test that probed slave
address x37 without actually trying to communicate. That was found to
not always be accurate. Instead, ddcutil simply uses whether DDC
protocol communication works. If it does, you see the "VCP version"
line, if not there a message that the display does not support DDC.
Please run command "ddcutil interrogate" when the input is set to the
source of the command, and send the output as an attachment.
Sanford
…On 12/14/19 7:55 AM, jonpas wrote:
LG 29UM69G fails at switching monitor inputs. I did not try other
capabilities. Performing |$ ddcutil --display setvcp 2 60 0x[0f|11]|
simply flashes the screen, but nothing changes.
|$ ddcutil detect ... Display 2 I2C bus: /dev/i2c-6 EDID synopsis: Mfg
id: GSM Model: LG ULTRAWIDE Serial number: Manufacture year: 2019 EDID
version: 1.3 VCP version: 2.1 |
There is no |Supports DDC: [true|false]| in the output.
|$ ddcutil environment| shows all permissions are correct (read & write).
|$ ddcutil --display 2 getvcp 60 VCP code 0x60 (Input Source ):
Invalid value (sl=0x00) |
This shows up correctly as |VGA-1 (sl=0x01)| for display 1 (secondary
monitor).
|$ ddcutil capabilities --display 2 --verbose ... Unparsed
capabilities string: (prot(monitor)type(lcd)UM69cmds(01 02 03 0C E3
F3)vcp(02 04 05 08 10 12 14(05 08 0B ) 16 18 1A 52 60( 11 0F 10) AC AE
B2 B6 C0 C6 C8 C9 D6(01 04) DF 62 8D F4 F5(01 02 03 04) F6(00 01 02)
4D 4E 4F 15(01 06 11 13 14 15 18 19 20 22 23 24 28 29 32 48) F7(00 01
02 03) F8(00 01) F9 E4 E5 E6 E7 E8 E9 EA EB EF FA(00 01) FD(00 01)
FE(00 01 02) FF)mccs_ver(2.1)mswhql(1)) ... Feature: 60 (Input Source)
Values (unparsed): 11 0F 10 Values ( parsed): 0f: DisplayPort-1 10:
DisplayPort-2 11: HDMI-1 |
ClickMonitorDDC on Windows has the same issue of reporting |0x00| and
not being able to switch.
------------------------------------------------------------------------
Both monitors are connected to both an integrated GPU (Intel CPU) and
dedicated GPU (GTX 1060) in the following way (VFIO setup):
* Display 1 (secondary):
o VGA -> iGPU
o DVI -> dGPU
* Display 2 (primary, LG 29UM69G):
o HDMI -> iGPU
o DisplayPort -> dGPU
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#100?email_source=notifications&email_token=ADMGY3QQW2HL3D6TSKIMH2LQYTJUPA5CNFSM4J22O4BKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4IAP3SNA>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADMGY3XTANLUXQ4L6YUI32DQYTJUPANCNFSM4J22O4BA>.
|
Correct, Windows is in a VM, host is Arch Linux. That is why I tried both ddcutil and ClickMonitorDDC, but neither combination worked.
Sadly not possible, as 29UM69G only has 1x HDMI, 1x DisplayPort and 1x USB-C Alt. DP.
Ah, I read that but didn't quite understand it, thanks for the explanation.
Here you go, ran |
On 12/14/19 2:49 PM, jonpas wrote:
I assume since you mention ClickMonitorDDC that you're running Windows
in a VM. So as a first step, check whether ddcutil setvcp 60 or
ClickMonitorDDC work when used on the currently active input.
Correct, Windows is in a VM, host is Arch Linux. That is why I tried
both ddcutil and ClickMonitorDDC, but neither combination worked.
Let me put the question more precisely. When the monitor is displaying
your Linux system, do getvcp and setvcp work for feature x60? What about
feature x10 (brightness)?
Conversely, when the monitor is displaying your VM Windows system, can
ClickMonitorDDC change the input to Linux? Can it change any of the
more ordinary features such as brightness?
… DisplayPort connections are also problematic. Can you configure so
that
DVI or HDMI, not DisplayPort, is used for the 29UM69G?
Sadly not possible, as 29UM69G only has 1x HDMI, 1x DisplayPort and 1x
USB-C Alt. DP.
So that's the explanation the x00 response you're seeing.
Ah, I read that but didn't quite understand it, thanks for the
explanation.
Please run command "ddcutil interrogate" when the input is set to the
source of the command, and send the output as an attachment.
Here you go, ran |$ ddcutil --display 2 interrogate| on Linux host
(connected with DisplayPort to dGPU): ddcutil_interrogate.log
<https://github.com/rockowitz/ddcutil/files/3964274/ddcutil_interrogate.log>
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#100?email_source=notifications&email_token=ADMGY3WJAQLIWEWM4K542S3QYU2FVA5CNFSM4J22O4BKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEG4J5TQ#issuecomment-565747406>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADMGY3QFEZFGOFFKCDQSUE3QYU2FVANCNFSM4J22O4BA>.
|
Monitor displaying Linux (HDMI to iGPU -
Monitor displaying VM Windows (DisplayPort to dGPU - ClickMonitorDDC):
Brightness, contrast, volume etc. can also be set over non-active input and it works perfectly. Input however does nothing. |
Well, that pretty much nails it. It's the monitor's implementation of
feature x60.
To further confirm, you might try using Windows program softMCCS by
enTech. (https://www.entechtaiwan.com/lib/softmccs.shtm). enTech is a
maker of DDC chips for monitors, and softMCCS is designed to exercise
implementations.
So that I can better understand/document this monitor, I'd appreciate it
if you would run the following commands (assuming your physical
configuration is unchanged) and send me the output. Thanks.
ddcutil getvcp 10 --bus 6 --trcfunc invoke_i2c_reader --trcfunc
ddc_write_read --verbose
ddcutil getvcp 11 --bus 6 --trcfunc invoke_i2c_reader --trcfunc
ddc_write_read --verbose
Sanford
…On 12/15/19 6:53 AM, jonpas wrote:
Monitor displaying Linux (HDMI to iGPU - |ddcutil|):
* |getvcp 60| always returns |0| (LG Ultra-Wide issue)
* |setvcp 60 0x<>| just blinks the monitor, nothing changes (tried
all 3 given options)
* |getvcp 10| correctly returns current brightness
* |setvcp 10 [50|100|...]| correctly sets brightness (as well as
contrast, volume etc.)
Monitor displaying VM Windows (DisplayPort to dGPU - ClickMonitorDDC):
* Input always shows |0| (LG Ultra-Wide issue)
* Changing input just blinks the monitor, nothing changes
* Current brightness is correctly shown
* Brightness can be set (as well as contrast, volume etc.)
Brightness, contrast, volume etc. can also be set over non-active
input and it works perfectly. Input however does nothing.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#100?email_source=notifications&email_token=ADMGY3S3J6B7KYPGP4IBCQ3QYYLEXA5CNFSM4J22O4BKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEG4XM7Y#issuecomment-565802623>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADMGY3QMEF2RDRGZUE5ZZI3QYYLEXANCNFSM4J22O4BA>.
|
softMCCS gets all the correct codes but switching also fails with the same blank and return. Everything works correctly with my secondary (old Samsung SyncMaster) screen. |
Thanks for the logs. I stand corrected. From the logs I see that the
monitor is properly not setting the supported feature bit for feature
x00 (by definition not a value feature) and feature x11 (which I've
never seen implemented). So it looks like the SL byte value x00
returned for feature x60 is just a special case reflecting the bad
implementation of feature x60.
Sanford
…On 12/16/19 9:55 AM, jonpas wrote:
softMCCS gets all the correct codes but switching also fails with the
same blank and return.
ddcutil_getvcp10_trcfunc.log
<https://github.com/rockowitz/ddcutil/files/3968549/ddcutil_getvcp10_trcfunc.log>
ddcutil_getvcp11_trcfunc.log
<https://github.com/rockowitz/ddcutil/files/3968550/ddcutil_getvcp11_trcfunc.log>
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#100?email_source=notifications&email_token=ADMGY3SEC3MFWXWW3X6Z7BLQY6JFTA5CNFSM4J22O4BKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEG664TI#issuecomment-566095437>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADMGY3THNSAYGTFQBTKGRNDQY6JFTANCNFSM4J22O4BA>.
|
I assume there is no workaround to make feature x60 work properly? And no problem! |
There's nothing in my toolbox to solve the problem. Since it appears in
ClickMonitorDDC and softMCCS as well as ddcutil it's clearly a hardware
problem in the monitor. All I can suggest is contacting LG tech
support. If they get back to you please post their response here.
Sanford
…On 12/16/2019 12:04 PM, jonpas wrote:
I assume there is no workaround to make feature x60 work properly?
And no problem!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#100?email_source=notifications&email_token=ADMGY3QWVYXYDG3BQWJHLCLQY6YLBA5CNFSM4J22O4BKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEG7MOKQ#issuecomment-566150954>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADMGY3SKVZAH7FQYPQKIU3LQY6YLBANCNFSM4J22O4BA>.
|
Thank you for your help. I will post here if I get any more information. |
I have this exact same issue with a 6 months old monitor. Seems unlikely that it would be hardware related, but I'm just speculating. |
I have the same issue and would be great if we could find a fix. @jonpas, have you heard anything from LG? |
Negative, it was presumably passed to their technical department, but there has been no other reply so far. |
It seems my LG 34WK500-P ultrawide monitor has the same issue. Changing control 0x60 to any value flashes the screen and returns to the current input. Interestingly, executing the command from my only connected device (my Manjaro PC) while being on the other (unused) HDMI input causes the OSD to pop up directly on the input list. |
I'm not clear how to interpret "executing the command from my only
connected device (my Manjaro PC) while being on the other (unused) HDMI
input". What computers (or virtual machines with a dedicated video card
using passthru) are connected to which monitor inputs?
…On 7/8/20 1:05 PM, Gimzie wrote:
It seems my LG 34WK500-P ultrawide monitor has the same issue.
Changing control 0x60 to any value flashes the screen and returns to
the current input. Interestingly, executing the command from my only
connected device (my Manjaro PC) while being on the other (unused)
HDMI input causes the OSD to pop up directly on the input list.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#100 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADMGY3SBSVJCKTXQREHHYVDR2SROBANCNFSM4J22O4BA>.
|
Sorry for the late reply (I sort of forgot about this thread) but I have my PC connected to HDMI 2 (running Manjaro Linux on an Intel UHD Graphics 630), and I have all of my GPU passthrough VMs set to use HDMI 1 (with my Nvidia Geforce GTX 1060 3GB card). |
I'm afraid I have nothing to add here. Seems like another LG idiosyncratic DDC implementation. |
is this something that can be corrected in software/firmware (if that is the case, we can try asking LG technical support) or it is in hardware? |
Personally I'm not too sure. I think a couple of us have opened cases with LG support but I'm pretty sure my case has got lost because it probably isn't work their time.or effort to investigate. However, if enough people raise the question, we may see some results |
ok it is worth trying. For my monitor lg 29um68-p, switching to hdmi 1 works but all other inputs (hdmi 2 and displayport) do not work. :( |
Came here looking for help with this on an LG 38WN95C - same thing, changing control 60 does nothing, whereas other things like brightness works. Was hoping for a workaround, but clearly there isn't one at the moment. |
@rockowitz - can something like
Every time the reset line is logged, the OSD disappears. I was trying to change the input while running watch. |
@marcosscriven strangely, that one lists DDC/CI in the specs (unlike others, including mine) |
I do have one further thought on this problem, though it's just a hunch.
Picture By Picture mode complicates the logic of switching inputs.
Feature x60 was not designed with this capability in mind. Presumably
X60 applies to the main (left) screen. The problems you're having may
reflect how x60 was implemented given this increased complexity.
…On 09/09/2020 01:36 PM, Marcos Scriven wrote:
Came here looking for help with this on an LG 38WN95C - same thing,
changing control 60 does nothing, whereas other things like brightness
works. Was hoping for a workaround, but clearly there isn't one at the
moment.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#100 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADMGY3V2HWXG6QCNYFRND6DSE64IHANCNFSM4J22O4BA>.
|
From an OSD menu perspective, PBP is a separate mode. In regular mode, one can choose an input from the top level. When in PBP mode, the menu changes, and then one has options for what goes on which side. |
Another thought - I see running
Just looking at the value of the first one, for example:
I have no idea what this means? Or how dangerous it would be to randomly start setting values. |
Further to the above, I noticed one can get all manufacturer code values:
I noticed that I thought therefore setting it by ddcutil might change it back, but I get a validation error:
Sorry to bug @rockowitz - but do you have any guidance here please? |
Sorry for the stream - one other thing I tried is HDMI 1
HDMI 2
So I tried setting this, to see if it would switch between HDMI 1 & 2. However, it doesn't work directly with
Is there any way @rockowitz to set an |
I managed to use NVAPI to send input change: https://gist.github.com/drzony/1744b4f72dcd4fde309a125445c474a1 |
Is it possible run ddcutil on raspberry pi 3 and use it as a dedictated
monitor switch controller? Does the hdmi on which raspberry pi is connected
need to be active for ddcutil to work?
…On Fri, Sep 1, 2023, 02:26 Drzony ***@***.***> wrote:
I managed to use NVAPI to send input change:
https://gist.github.com/drzony/1744b4f72dcd4fde309a125445c474a1
Unfortunately I'm getting the same results as @moviuro
<https://github.com/moviuro> . The monitor (38WN95C) just blinks to black
for a second and does not switch the input. The good news is that I was
able to enable PBP using the code above.
—
Reply to this email directly, view it on GitHub
<#100 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AEJTZP3DFCOEIB4CIRYVUDLXYEFRTANCNFSM4J22O4BA>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
@yeahman45 yes, it only responds to DDC when it's the 'focused' input. The best way to handle it via RPi would be over USB, which I think my script might have gotten buried a bit but that's actually part of the reason I never bothered using I2C, whatever is plugged into USB can always control DDC. Script is at https://gist.github.com/shinyquagsire23/f6b2adef253c6c3ab557a4852bf3abad for switching inputs, I also have nicer abstractions in https://github.com/shinyquagsire23/lg_display_manager/blob/main/display_manager.py but I also did a lot of (!!monitor specific!!) firmware patches to get fine-grained control of the PBP. |
Thx for ur reply.
Usb? Connect rpi to the monitor using usb? My monitor does not have a usb
port.
…On Fri, Sep 1, 2023, 09:45 Max Thomas ***@***.***> wrote:
@yeahman45 <https://github.com/yeahman45> yes, it only responds to DDC
when it's the 'focused' input. The best way to handle it via RPi would be
over USB, which I think my script might have gotten buried a bit but that's
actually part of the reason I never bothered using I2C, whatever is plugged
into USB can *always* control DDC.
Script is at
https://gist.github.com/shinyquagsire23/f6b2adef253c6c3ab557a4852bf3abad
for switching inputs, I also have nicer abstractions in
https://github.com/shinyquagsire23/lg_display_manager/blob/main/display_manager.py
but I also did a lot of (!!monitor specific!!) firmware patches to get
fine-grained control of the PBP.
—
Reply to this email directly, view it on GitHub
<#100 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AEJTZP6S2VB2Y5T4MVTWYBDXYFY55ANCNFSM4J22O4BA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
@shinyquagsire23 Thanks for all your work. I'm still unable to get USB working. Can you point me as to where you got the "wrapping" values for HID? I can figure out some values from your code, but it would be nice to have some more info, so I could try to figure out what goes wrong on my monitor. |
Do you mean the service port USB on back of monitor or USB type c monitors. I have 24GN650N which apparently has service USB port on back. |
Amazing, this is the mapping for model 0x90 - HDMI 1 |
Hello, I post here to report that this also works on my
0x0090 switches to HDMI-1 |
Hi. Thank you for the tip, folks!
Works for The |
Hi, The following works perfectly for me on LG monitor 35WN75C-B when I'm connected through HDMI but not when I'm connected from USB-C.
Also xd7 split the screen Does anyone have any idea why it doesn't work on USB-C? |
When i run "ddcutil capabilities" with my display attached via displayport it only gives me the Values for HDMI1, HDMI2, DP1 and DP2. Feature: 52 (Active control) @alimoezzi https://www.ddcutil.com/usb/ Would be great if i can switch the inputs via shortcut because the osd is really slow. |
I was able to get input switching working on Windows with my LG ULTRAGEAR 27GP850-B with these values: I adapted some sample code in the NVIDIA API for sending i2c commands |
Doesnt work on 34GN850-B unfortunately :( |
This works for |
This works for my LG 32un880-b 👍 |
Yo thanks for sharing! |
Hi, I have the same monitor LG ULTRAGEAR 27GP850-B and trying to change value in VSC to display 1, mine is 1 here and not 0 it seems like. int display_index = 1; And trying to run it it changes the .exe to an .obj and says that it can´t find the .exe file, what am I doing wrong? (I´m a beginner in VSC and starting it though "delevoper command prompot for VS" |
unfortunately does not seem to work on my lg 29um68 :( |
Did anyone manage to make it work in LG UltraGear 32GR93U-B ? (Windows 11) In ControlMyMonitor the monitor has this values. xF4 does not seem to change when I manually change from DisplayPort to Hdmi2. Thus, I am a bit afraid to try change it to any of these values: |
@Synvani Looks like you're getting the return value NVAPI_NVIDIA_DEVICE_NOT_FOUND which means "No NVIDIA device found in the system". This solution uses the NVIDIA API are you running an NVIDIA gpu? |
@SlimmaB try running the exe with command line arguments like this "writeValueToScreen.exe 1 0x90 0xF4 0x50". Otherwise you can try compiling the source code unaltered then run it the same way |
@kaleb422 Your "script" works on LG-UltraGear-32GR93U-B with the exact same numbers exist on README: https://github.com/kaleb422/NVapi-write-value-to-monitor Which is really interesting, because I forgot to change display-id and used "0" as you did. But check here the ddcutil-detect output on my PC:
As long it works, I won't ask for more. Thank you. |
Any luck with 32MP60G? |
thank you very much for your great work . it worked for me half of it.what i mean is i used hdmi2 for the monitor with one computer and hdmi1 for another latop, then i used the command code is: writeValueToDisplay.exe 0 0x90 0xF4 0x50, it works fine to swicth to hdmi1,but when i used codes: writeValueToDisplay.exe 0 0x91 0xF4 0x50, it cannot switch back. how do i switch back to hdmi2??? many thanks. |
the error prompt is like these: |
Unfortunally it didn't work on mine! Display 2
I2C bus: /dev/i2c-15
DRM connector: card1-DP-1
EDID synopsis:
Mfg id: GSM - Goldstar Company Ltd (LG)
Model: LG ULTRAWIDE
Product code: 30458 (0x76fa)
Serial number:
Manufacture year: 2016, Week: 1
VCP version: 2.1 I tested all possible values from x0090 up to x00ff, and those values at least made the screen blinks. sudo ddcutil -d 2 setvcp xF4 x0090 --i2c-source-addr=x50 --noverify
sudo ddcutil -d 2 setvcp xF4 x00D0 --i2c-source-addr=x50 --noverify
sudo ddcutil -d 2 setvcp xF4 x00D1 --i2c-source-addr=x50 --noverify I'm on Fedora 40, LG monitor connected on DisplayPort. |
On my LG 27GN850-B the command Any debugging I can do to help find what works on my monitor? |
Worked well for me on 34WN780 ! Thanks ! |
I was able to get input switching on Windows with my LG DualUp (28MQ780-B) with these values:
For any AMD GPU users, I adapted some sample code from the AMD Display Library (ADL) for sending the input switching i2c command: https://github.com/amildahl/amdddc-windows/tree/master |
LG 29UM69G fails at switching monitor inputs. I did not try other capabilities. Performing
$ ddcutil --display 2 setvcp 60 0x[0f|11]
simply flashes the screen, but nothing changes.There is no
Supports DDC: [true|false]
in the output.$ ddcutil environment
shows all permissions are correct (read & write).This shows up correctly as
VGA-1 (sl=0x01)
for display 1 (secondary monitor).ClickMonitorDDC on Windows has the same issue of reporting
0x00
and not being able to switch.Both monitors are connected to both an integrated GPU (Intel CPU) and dedicated GPU (GTX 1060) in the following way (VFIO setup):
Thank you in advance!
The text was updated successfully, but these errors were encountered: