Codebase list ddccontrol-db / d4f87ed
Merge pull request #74 from maxnikulin/dell-p2416d DELL P2416D support (DELA0C2, DELA0C3) Miroslav Kravec authored 5 years ago GitHub committed 5 years ago
4 changed file(s) with 376 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
0 <?xml version="1.0"?>
1 <monitor name="DELL P2416D (VGA)" init="standard">
2 <!--- <caps add="(prot(monitor)type(LCD)model(P2416D)cmds(01 02 03 07 0C E3 F3)vcp(02 04 05 06 08 0E 10 12 14(05 08 0B 0C) 16 18 1A 1E 20 30 3E 52 60(01 11 0F) AA(01 02) AC AE B2 B6 C6 C8 C9 D6(01 04 05) DC(00 02 03 05) DF E0 E1 E2(00 01 02 04 0E 12 14 19) F0(00 08) F1(01 02) F2 FD)mswhql(1)asset_eep(40)mccs_ver(2.1))"/> -->
3 <include file="DELA0C3"/>
4 </monitor>
5
0 <?xml version="1.0"?>
1 <monitor name="DELL P2416D" init="standard">
2 <!-- <caps add="(prot(monitor)type(LCD)model(P2416D)cmds(01 02 03 07 0C E3 F3)vcp(02 04 05 08 10 12 14(05 08 0B 0C) 16 18 1A 52 60(01 11 0F) AA(01 02) AC AE B2 B6 C6 C8 C9 D6(01 04 05) DC(00 02 03 05) DF E0 E1 E2(00 01 02 04 0E 12 14 19) F0(00 08) F1(01 02) F2 FD)mswhql(1)asset_eep(40)mccs_ver(2.1))"/> -->
3 <!--
4 Probed through VGA bus (responds as DELA0C2) reports a bit more controls
5 than through HDMI bus (responds as DELA0C3).
6 Likely may be generalized to MCCS 2.1 at least for DELL monitors:
7
8 DELA09B (DVI)
9 (prot(monitor)type(LCD)model(P2414H)
10 cmds(01 02 03 07 0C E3 F3)
11 vcp(02 04 05 08 10 12 14(05 08 0B 0C) 16 18 1A 52 60(01 03 0F )
12 AA AC AE B2 B6 C6 C8 C9 D6(01 04 05) DC(00 02 03 05) DF
13 E0 E1 E2(00 01 02 04 06 0E 12 14 ) F0(00 01 ) F1(01 ) F2 FD)
14 mswhql(1)asset_eep(40)mccs_ver(2.1))"/>
15
16 DELA0BE (DP)
17 Note: "FD" does not obey ordering
18 (prot(monitor)type(lcd)model(P2415Q)
19 cmds(01 02 03 07 0C E3 F3)
20 vcp(02 04 05 08 10 12 14(05 08 0B 0C) 16 18 1A 52 60( 11 0F 10)
21 AA(01 02) AC AE B2 B6 C6 C8 C9 D6(01 04 05) DC(00 02 03 05) DF F0(00 08) FD
22 E0 E1 E2(00 01 02 04 0E 12 14 19) E4 F1 F2 )
23 mccs_ver(2.1)mswhql(1))
24
25 DELA0C2 (VGA)
26 (prot(monitor)type(LCD)model(P2416D)
27 cmds(01 02 03 07 0C E3 F3)
28 vcp(02 04 05 06 08 0E 10 12 14(05 08 0B 0C) 16 18 1A 1E 20 30 3E 52 60(01 11 0F )
29 AA(01 02) AC AE B2 B6 C6 C8 C9 D6(01 04 05) DC(00 02 03 05) DF
30 E0 E1 E2(00 01 02 04 0E 12 14 19) F0(00 08) F1(01 02) F2 FD)
31 mswhql(1)asset_eep(40)mccs_ver(2.1))
32
33 DELA0C3 (HDMI)
34 (prot(monitor)type(LCD)model(P2416D)
35 cmds(01 02 03 07 0C E3 F3)
36 vcp(02 04 05 08 10 12 14(05 08 0B 0C) 16 18 1A 52 60(01 11 0F )
37 AA(01 02) AC AE B2 B6 C6 C8 C9 D6(01 04 05) DC(00 02 03 05) DF
38 E0 E1 E2(00 01 02 04 0E 12 14 19) F0(00 08) F1(01 02) F2 FD)
39 mswhql(1)asset_eep(40)mccs_ver(2.1))
40 -->
41 <controls>
42 <control id="newcontrolvalue" type="list" address="0x02">
43 <value id="nochanges" value="0x01"/>
44 <value id="changed" value="0x02"/>
45 </control>
46
47 <!-- not in vcp list -->
48 <!-- <control id="???" address="0x0b"/> -->
49
50 <control id="colorpreset" type="list" address="0x14">
51 <!-- Other values may be read but not set (at least 0, 1, 2, 4, 29) -->
52 <value id="srgb" value="0x05"/>
53 <value id="cool" value="0x08"/>
54 <value id="warm" value="0x0b"/>
55 <value id="user1" value="0x0c"/>
56 </control>
57
58 <!-- not in vcp list -->
59 <!-- <control id="???" type="list" address="0x1f">
60 <value id="???" value="1"/>
61 </control> -->
62
63 <!-- Read-only, its value is the address of control changed through OSD menu -->
64 <!-- <control id="activecontrol" address="0x52"/> -->
65
66 <control id="inputsource" type="list" address="0x60">
67 <!-- Unable to identify control and value related to autoselect OSD menu option -->
68 <value id="analog" value="1"/>
69 <!-- <value id="dvi" value="3"/> -->
70 <value id="dp" value="15"/>
71 <value id="hdmi1" value="17"/>
72 </control>
73
74 <!-- 0x6c, 0x6e, 0x70 are not in vcp list, single read gives strange values that differ from probe -->
75
76 <!-- 0xaa is read-only
77 Control 0xaa: +/2/255 C [OSD Orientation - Portrait]
78 Control 0xaa: +/1/255 C [OSD Orientation - Landscape]
79 -->
80
81 <!-- Have not tried to change, Horizontal Sync Frequency? -->
82 <!-- <control id="hsyncfrequency" address="0xac"/> -->
83
84 <!-- Have not tried to change, Vertical Sync Frequency (x100 Hz)? -->
85 <!-- <control id="vsyncfrequency" address="0xae"/> -->
86
87 <!-- Have not tried to change, Subpixel Layout - RGB? -->
88 <!-- <control id="subpixellayout" type="list" address="0xb2">
89 <value id="rgb" value="0x01"/>
90 </control> -->
91
92 <!-- Have not tried to change, Display Technology Type - LCD Active Matrix? -->
93 <!-- <control id="displaytechnologytype" type="list" address="0xb6">
94 <value id="lcdactivematrix" value="0x03"/>
95 </control> -->
96
97 <!-- Have not tried to change, Power-on Hours -->
98 <!-- <control id="poweronhours" address="0xc0"/> -->
99
100 <!-- Have not tried to change, Application Enable Key? -->
101 <!-- <control id="applicationenablekey" address="0xc6"/> -->
102
103 <!-- Have not tried to change, Display Controller Type? -->
104 <!-- <control id="displaycontrollertype" address="0xc8"/> -->
105
106 <!-- Have not tried to change, Display Firmware Level? -->
107 <!-- <control id="displayfirmwarelevel" address="0xc9"/> -->
108
109 <!-- Read-only, not in the caps, OSD is active -->
110 <!-- <control id="osd" type="list" address="0xca">
111 <value id="disable" value="1"/>
112 <value id="enable" value="2"/>
113 </control> -->
114
115 <!-- Read-only, not in vcp, OSD language. Some values are above reported limit of 11.
116 Some values are likely vendor or model specific -->
117 <!-- <control id="language" type="list" address="0xcc">
118 <value id="english" value="0x02"/>
119 <value id="french" value="0x03"/>
120 <value id="german" value="0x04"/>
121 <value id="portuguese_br" value="0x06"/>
122 <value id="spanish" value="0x0a"/>
123 <value id="japanese" value="0x0c"/>
124 <value id="russian" valie="0x90"/>
125 <value id="chinese" valie="0xe0"/>
126 </control> -->
127
128 <control id="dpms" address="0xd6">
129 <value id="on" value="1"/>
130 <value id="standby" value="4"/>
131 <value id="off" value="5"/>
132 </control>
133
134 <control id="magicbright" type="list" address="0xdc">
135 <value id="standard" value="0x00"/>
136 <value id="multimedia" value="0x02"/>
137 <value id="movie" value="0x03"/>
138 <value id="game" value="0x05"/>
139 </control>
140
141 <!-- Have not tried to change, VCP Version - 02.01 -->
142 <!-- 0x0201 means 02.01 - hi byte, lo byte -->
143 <!-- <control id="vcpversion" type="list" address="0xdf">
144 <value id="v0201" value="0x0201"/>
145 </control> -->
146
147 <!-- this is inverted from VESA -->
148 <control id="power" type="list" address="0xe1">
149 <value id="on" value="0"/>
150 <value id="standby" value="1"/>
151 </control>
152
153 <control id="dellpaper" address="0xf0">
154 <value id="set" value="0x08"/>
155 </control>
156
157 <!-- Read-only, Dynamic Contrast -->
158 <!-- <control id="dynamiccontrast" type="list" address="0xf2">
159 <value id="off" value="0x00"/>
160 <value id="on" value="0x01"/>
161 </control> -->
162 </controls>
163
164 <include file="VESA"/>
165 </monitor>
211211 <value id="off" name="Off"/>
212212 <value id="calibrated" name="Calibrated"/>
213213 </control>
214 <!-- DELL P2416D -->
215 <control id="dellpaper" type="command" name="Paper preset" address="0xf0">
216 <value id="set" value="0x08" name="Set Paper Preset"/>
217 </control>
214218 </subgroup>
215219 </group>
216220 <group name="Position and size">
411415 <value id="portuguese" name="Português (Portuguese)"/>
412416 <value id="serbocroatian" name="SiGC/BiH/CRO (Serbo-Croatian)"/>
413417 </control>
418 <!-- If "changed", read 0x52 register value to get address of the control changed using OSD menu -->
419 <control id="newcontrolvalue" type="list" name="New Control Value">
420 <value id="nochanges" name="No changes"/>
421 <value id="changed" name="Some values changed"/>
422 </control>
414423 </subgroup>
415424 <subgroup name="Power control">
416425 <control id="dpms" type="list" name="DPMS Control" address="0xd6">
420429 </control>
421430 <control id="power" type="list" name="Power control" address="0xe1">
422431 <value id="off" name="Off"/>
432 <value id="standby" name="Standby"/>
423433 <value id="on" name="On"/>
424434 </control>
425435 </subgroup>
0 # DELL P2416D: DELA0C2 (VGA), DELA0C3 (HDMI)
1
2 EDID readings:
3 Plug and Play ID: DELA0C2 [VESA standard monitor]
4 Input type: Digital
5
6 EDID readings:
7 Plug and Play ID: DELA0C3 [VESA standard monitor]
8 Input type: Digital
9
10 ## Capabilities
11 Note `type(LCD)` in upper case that is not recognized by the ddccontrol parser.
12
13 `mccs_ver(2.1)` may define a more specific control set than just "VESA standard monitor"
14
15 DELA0C2 (VGA):
16 ```
17 Raw output: (prot(monitor)type(LCD)model(P2416D)cmds(01 02 03 07 0C E3 F3)vcp(02 04 05 06 08 0E 10 12 14(05 08 0B 0C) 16 18 1A 1E 20 30 3E 52 60(01 11 0F) AA(01 02) AC AE B2 B6 C6 C8 C9 D6(01 04 05) DC(00 02 03 05) DF E0 E1 E2(00 01 02 04 0E 12 14 19) F0(00 08) F1(01 02) F2 FD)mswhql(1)asset_eep(40)mccs_ver(2.1))
18 Parsed output:
19 VCP: 02 04 05 06 08 0e 10 12 14 16 18 1a 1e 20 30 3e 52 60 aa ac ae b2 b6 c6 c8 c9 d6 dc df e0 e1 e2 f0 f1 f2 fd
20 Type: Unknown
21 ```
22
23 DELA0C3 (HDMI):
24 ```
25 Raw output: (prot(monitor)type(LCD)model(P2416D)cmds(01 02 03 07 0C E3 F3)vcp(02 04 05 08 10 12 14(05 08 0B 0C) 16 18 1A 52 60(01 11 0F) AA(01 02) AC AE B2 B6 C6 C8 C9 D6(01 04 05) DC(00 02 03 05) DF E0 E1 E2(00 01 02 04 0E 12 14 19) F0(00 08) F1(01 02) F2 FD)mswhql(1)asset_eep(40)mccs_ver(2.1))
26 Parsed output:
27 VCP: 02 04 05 08 10 12 14 16 18 1a 52 60 aa ac ae b2 b6 c6 c8 c9 d6 dc df e0 e1 e2 f0 f1 f2 fd
28 Type: Unknown
29 ```
30
31 Wrapped and aligned variant:
32 ```
33 DELA0C2 (VGA):
34 (prot(monitor)type(LCD)model(P2416D)
35 cmds(01 02 03 07 0C E3 F3)
36 vcp(02 04 05 06 08 0E 10 12 14(05 08 0B 0C) 16 18 1A 1E 20 30 3E 52 60(01 11 0F )
37 AA(01 02) AC AE B2 B6 C6 C8 C9 D6(01 04 05) DC(00 02 03 05) DF
38 E0 E1 E2(00 01 02 04 0E 12 14 19) F0(00 08) F1(01 02) F2 FD)
39 mswhql(1)asset_eep(40)mccs_ver(2.1))
40
41 DELA0C3 (HDMI):
42 (prot(monitor)type(LCD)model(P2416D)
43 cmds(01 02 03 07 0C E3 F3)
44 vcp(02 04 05 08 10 12 14(05 08 0B 0C) 16 18 1A 52 60(01 11 0F )
45 AA(01 02) AC AE B2 B6 C6 C8 C9 D6(01 04 05) DC(00 02 03 05) DF
46 E0 E1 E2(00 01 02 04 0E 12 14 19) F0(00 08) F1(01 02) F2 FD)
47 mswhql(1)asset_eep(40)mccs_ver(2.1))
48 ```
49
50 So VGA interface has a bit more controls.
51
52 ## Controls
53 ### Legend
54 * RW value may be set and new value may be read
55 * W monitor executes the command in response to write of 1, following read
56 reports 0
57 * R attempts to write another value do not change register value.
58 The value may be changed using OSD menu.
59 * Empty - have not tried to write something due to unclear consequences,
60 or due to the register is likely read-only such as VCP version.
61
62 Last column contains description found in DB entries for other monitors or
63 in [ddcutil](http://www.ddcutil.com/) docs and [sources](https://github.com/rockowitz/ddcutil/).
64 Degree of uncertainty is expressed by question marks.
65
66 | Addr | DELA0C3 (HDMI) | DELA0C2 (VGA) | | Description or Comment |
67 | ---- | ----------------------------------------- | ----------------------------------------- | -- | ----------------------------------- |
68 | 0x02 | +/1/2 C [???] | +/2/2 C [???] | RW | New Control Value |
69 | 0x04 | +/0/1 C [Restore Factory Defaults] | +/0/1 C [Restore Factory Defaults] | W | |
70 | 0x05 | +/0/1 C [Restore Brightness and Contrast] | +/0/1 C [Restore Brightness and Contrast] | W | |
71 | 0x06 | +/0/1 [???] | +/0/1 C [Restore Factory Default Geometry]| W | |
72 | 0x08 | +/0/1 C [Restore Factory Default Color] | +/0/1 C [Restore Factory Default Color] | W | |
73 | 0x0b | +/100/0 [???] | +/100/0 [???] | | Color Temperature Increment ??? |
74 | 0x0e | +/62865/100 [???] | +/52/100 C [Image Lock Coarse (Clock)] | | |
75 | 0x10 | +/25/100 C [Brightness] | +/75/100 C [Brightness] | RW | |
76 | 0x12 | +/60/100 C [Contrast] | +/75/100 C [Contrast] | RW | |
77 | 0x14 | +/5/12 C [???] | +/5/12 C [???] | RW | Color Preset |
78 | 0x16 | +/100/100 C [Red maximum level] | +/100/100 C [Red maximum level] | RW | |
79 | 0x18 | +/100/100 C [Green maximum level] | +/100/100 C [Green maximum level] | RW | |
80 | 0x1a | +/100/100 C [Blue maximum level] | +/100/100 C [Blue maximum level] | RW | |
81 | 0x1e | +/0/1 [???] | +/0/1 C [Automatically adjust] | W | |
82 | 0x1f | +/1/1 [???] | +/1/1 [???] | | Auto Color (always 1) ??? |
83 | 0x20 | +/221/100 [???] | +/49/100 C [Horizontal Position] | RW | |
84 | 0x30 | +/21/100 [???] | +/51/100 C [Vertical Position] | RW | |
85 | 0x3e | +/68/100 [???] | +/92/100 C [Image Lock Fine (Clock Phase)]| RW | |
86 | 0x52 | +/0/255 C [???] | +/14/255 C [???] | R | Active Control |
87 | 0x60 | +/17/18 C [Input Source Select] | +/1/18 C [Input Source Select - Analog] | RW | |
88 | 0x6c | +/17/18 [???] | +/1/18 [???] | | ??? |
89 | 0x6e | +/17/18 [???] | +/1/18 [???] | | ??? |
90 | 0x70 | +/17/18 [???] | +/1/18 [???] | | ??? |
91 | 0xaa | +/1/255 C [OSD Orientation - Landscape] | +/1/255 C [OSD Orientation - Landscape] | R | |
92 | 0xac | +/23564/1 C [???] | +/5464/1 C [???] | | Horizontal Sync Frequency ? |
93 | 0xae | +/6010/65535 C [???] | +/5990/65535 C [???] | | Vertical Sync Frequency (x100 Hz) ? |
94 | 0xb2 | +/1/1 C [???] | +/1/1 C [???] | | Subpixel Layout - RGB ? |
95 | 0xb6 | +/3/5 C [???] | +/3/5 C [???] | | Display Technology Type - LCD Active Matrix ? |
96 | 0xc0 | +/958/65535 [???] | +/1005/65535 [???] | | Power-on Hours |
97 | 0xc6 | +/17868/65535 C [???] | +/17868/65535 C [???] | | Application Enable Key ? |
98 | 0xc8 | +/4361/17 C [???] | +/4361/17 C [???] | | Display Controller Type ? |
99 | 0xc9 | +/257/65535 C [???] | +/257/65535 C [???] | | Display Firmware Level ? |
100 | 0xca | +/1/2 [???] | +/1/2 [???] | R | OSD |
101 | 0xcc | +/2/11 [???] | +/2/11 [???] | R | Language - English |
102 | 0xd6 | +/1/5 C [DPMS Control - On] | +/1/5 C [DPMS Control - On] | RW | |
103 | 0xdc | +/0/5 C [???] | +/0/5 C [???] | RW | Magic Bright |
104 | 0xdf | +/513/65535 C [???] | +/513/65535 C [???] | | VCP Version - 02.01 |
105 | 0xe0 | +/0/1 C [???] | +/0/1 C [???] | | constant value ??? |
106 | 0xe1 | +/0/1 C [Power control - Off] | +/0/1 C [Power control - Off] | RW | |
107 | 0xe2 | +/0/25 C [???] | +/0/25 C [???] | R | Something related to Preset Mode ? |
108 | 0xf0 | +/0/255 C [???] | +/0/255 C [???] | RW | Paper preset mode if 0x08 |
109 | 0xf1 | +/3/255 C [???] | +/3/255 C [???] | | constant value ??? |
110 | 0xf2 | +/0/255 C [???] | +/0/255 C [???] | R | Dynamic Contrast - Off |
111 | 0xfd | +/98/255 C [???] | +/98/255 C [???] | | constant value ??? |
112
113 ## Preset modes
114 Similar to [DELA0BE](DELA0BE.md) except absence of 0x0c
115
116 ### Read-write registers 0x14, 0xdc, 0xf0
117 "Address: value" pairs to set the mode
118
119 * Standard `0x14: 0x05` or `0xdc: 0x00`
120 * Multimedia `0xdc: 0x02`
121 * Movie `0xdc: 0x03`
122 * Game `0xdc: 0x05`
123 * Paper `0xf0: 0x08` (opposite `0xf0: 0x00` has no effect)
124 * Cool `0x14: 0x08`
125 * Warm `0x14: 0x0b`
126 * User `0x14: 0x0c`
127
128 0x14 register may have other values: 0, 1, 2, 4, or even 29. E.g. if movie or game preset mode is selected
129 then hue is changed using OSD or dynamic contrast is turned off. No reaction on attempts to set similar values.
130
131 ### 0xe2 Read-only register
132 * 0 Standard
133 * 1 Multimedia
134 * 2 Movie
135 * 4 Game
136 * 14 Warm
137 * 18 Cool
138 * 20 Custom
139 * 25 Paper
140
141 ### 0xf2 Dynamic contrast read-only register
142 Through OSD available for movie and game presets. Can not be changed using DDC controls.
143
144 ## Input source 0x60
145 Monitor has autoselect menu item, have no idea how it can be selected.
146 Read results in currently active input chosen explicitly or implicitly.
147
148 * 1 VGA
149 * 15 Display Port
150 * 17 HDMI
151
152 Through VGA cable read attempts fails just after switching.
153
154 ## OSD Language (0xcc, read-only)
155 * 0x02 English
156 * 0x03 French
157 * 0x04 German
158
159 May be vendor or model specific
160
161 * 0x06 Portuguese (Brazil)
162 * 0x0a Spanish
163
164 Above reported range of 11
165
166 * 0x0c Japanese
167 * 0x90 Russian
168 * 0xe0 Chinese
169
170 ## DPMS 0xd6
171 State 0x05 "Power Off" can not be changed directly to 0x04 "Standby"
172
173 ## OSD only controls
174 Similar to [DELA0BE](DELA0BE.md) except "MST" is absent but there are some other options.
175
176 ## Misc
177 Read error are reported quite often, most of the times retries succeed.
178
179 0x6c 0x6e 0x70 that might mean Red, Green, Blue Black Level.
180 While probing reading gives the same value as input source.
181 Single reads results in strange values
182 ```
183 Reading 0x70...
184 Control 0x70: +/30309/10613 [???]
185 ```
186 or
187 ```
188 Control 0x70: +/10588/12585 [???]
189 ```
190
191 Read after the following commands gives error: restore factory defaults, geometry, auto adjust, standby.
192 Maybe auto adjust takes more time than default delay.
193