Well, crossing my fingers didn't work: the fridge iced up again so obviously more diagnosis was in order.
I figured out that there is an access to the defrost timer on the underside of the module that is attached to the ceiling of the refrigerator compartment. This allows you to manually turn the defrost timer without removing the whole module.
After turning it enough that I could hear a click, the fridge promptly would go into a defrost cycle.
The kill-a-watt told me that the defrost element uses around 460 watts, compared to 160 watts for running the compressor. The defrost cycle takes about .14 KWH (460 watts for 0.3 hour)
Also, when it is in defrost cycle, the compressor is disconnected, so you definitely know that it has switched over.
After 20 minutes the defrost thermostat shuts off, and power consumption goes to about 1 watt.
But the compressor never comes back online... after 20 minutes which is the normal cycle time, the timer is supposed to "click" and turn the compressor back on and shut the defrost element off.
Since the element heats up (if you put your hand in the back of the freezer compartment, you can feel the heat), and it's using 460 watts, we know the defrost element is good.
Since the element shuts off after 20 minutes, we know the defrost thermostat is working.
Therefore, the timer must be bad.
After searching ebay, I found a timer that matched specs (1/2 hp, 12 hour) and looked identical except for the model number, made by the same manufacturer.
In the week while waiting for delivery, I would activate the defrost cycle manually for 20 minutes once a day. (It's interesting that the element would run for just about exactly 20 minutes). I put a mirror up so I could see the little grey thing to turn. It's kinda tricky to get a screwdriver on it.
I just swapped the defrost timer and things seem to be working. Now when I open the fridge and put my head nearby and listen, I can hear the timer motor grinding slowly. Before, I heard no timer motor noise. (edit: I think the timer motor only runs when the compressor runs, so it's quiet when the compressor is shut off. I only heard the timer motor running while the defrost cycle was active.) So that explains why after exactly 12 hours the defrost cycle didn't initiate, it's 12 hours of compressor run time).
It was super easy to swap it out because it was identical in virtually every way, though the case on this one was opaque versus clear plastic.
It's pretty useful to have the kill-a-watt, if this fridge using more KWH than normal, around 1.5 KWH per day, you definitely know something's wrong.
Maybe I'll put some pictures up tomorrow when I feel more industrious.
Tuesday, April 25, 2017
Friday, April 21, 2017
So where does the PNP ID come from in the EDID?
Looking at the EDID, where is the manufacturer code and the monitor ID?
The wikipedia EDID article tells us that bytes 8-9 are the Manufacturer ID and bytes 10-11 are the product code.
8–9 Manufacturer ID.
These IDs are assigned by Microsoft, they are PNP IDs "00001=A”; “00010=B”; ... “11010=Z”. Bit 7 (at address 08h) is 0, the first character (letter) is located at bits 6 → 2 (at address 08h), the second character (letter) is located at bits 1 & 0 (at address 08h) and bits 7 → 5 (at address 09h), and the third character (letter) is located at bits 4 → 0 (at address 09h).
Bit 15 (Reserved, always 0)
Bits 14–10 First letter of manufacturer ID (byte 8, bits 6–2)
Bits 9–5 Second letter of manufacturer ID (byte 8, bit 1 through byte 9 bit 5)
Bits 4–0 Third letter of manufacturer ID (byte 9 bits 4–0)
10–11 Manufacturer product code. 16-bit number, little-endian.
So let's make a little LibreCalc spreadsheet and a function to get the bits:
then a table from a1:31 with the numbers 1 to 31
a table from b1:31 with the formula =CHAR(A1+UNICODE("A")-1) in b1 and fill copy it to b31. I'm so used to using the ASC function but now I guess it has to be UNICODE.
and to see the bit patterns, why not fill c1:c31 with =DEC2BIN(A1,5) to pad it to 5 binary digits.
then to translate a 5 bit letter code to a letter, we go:
=LOOKUP(lettercodenumber,A1:A31,B1:B31)
and to get the bits for a specific range let's use the bits routine:
=bits(number,14,10) for bits 10 to 14
Let's use cell f4 for our: 10ac
put a =HEX2DEC(f4) into g4
and the following into cell h4
=LOOKUP(BITS(G4,10,14),$A$1:$A$31,$B$1:$B$31)&
LOOKUP(BITS(G4,5,9),$A$1:$A$31,$B$1:$B$31)&
LOOKUP(BITS(G4,0,4),$A$1:$A$31,$B$1:$B$31)
And now you can convert that hex code to a manufacturer ID.
The product code is easy, just reverse the little endian:
So if your hexdump looks like this:
00000000 00 ff ff ff ff ff ff 00 10 ac 15 a0 35 34 38 36 |................|
10ac = DEL
15a0 = A015
for the PNP code of DELA015
And if you want to get rid of the lookup table, you can just compute it with another function:
which makes our cell h4 formula
=PNPLETTER(BITS(G4,10,14))&PNPLETTER(BITS(G4,5,9))&PNPLETTER(BITS(G4,0,4))
It would have been neat to have it "human readable" without bit fiddling but I guess they wanted to save a byte here and there.
The wikipedia EDID article tells us that bytes 8-9 are the Manufacturer ID and bytes 10-11 are the product code.
8–9 Manufacturer ID.
These IDs are assigned by Microsoft, they are PNP IDs "00001=A”; “00010=B”; ... “11010=Z”. Bit 7 (at address 08h) is 0, the first character (letter) is located at bits 6 → 2 (at address 08h), the second character (letter) is located at bits 1 & 0 (at address 08h) and bits 7 → 5 (at address 09h), and the third character (letter) is located at bits 4 → 0 (at address 09h).
Bit 15 (Reserved, always 0)
Bits 14–10 First letter of manufacturer ID (byte 8, bits 6–2)
Bits 9–5 Second letter of manufacturer ID (byte 8, bit 1 through byte 9 bit 5)
Bits 4–0 Third letter of manufacturer ID (byte 9 bits 4–0)
10–11 Manufacturer product code. 16-bit number, little-endian.
So let's make a little LibreCalc spreadsheet and a function to get the bits:
function bits(value, lowbit, highbit as double)as double retval = 0 for i = lowbit to highbit retval = retval + (value and (2^i)) next i retval = retval / (2^lowbit) bits = retval end function
then a table from a1:31 with the numbers 1 to 31
a table from b1:31 with the formula =CHAR(A1+UNICODE("A")-1) in b1 and fill copy it to b31. I'm so used to using the ASC function but now I guess it has to be UNICODE.
and to see the bit patterns, why not fill c1:c31 with =DEC2BIN(A1,5) to pad it to 5 binary digits.
then to translate a 5 bit letter code to a letter, we go:
=LOOKUP(lettercodenumber,A1:A31,B1:B31)
and to get the bits for a specific range let's use the bits routine:
=bits(number,14,10) for bits 10 to 14
Let's use cell f4 for our
put a =HEX2DEC(f4) into g4
and the following into cell h4
=LOOKUP(BITS(G4,10,14),$A$1:$A$31,$B$1:$B$31)&
LOOKUP(BITS(G4,5,9),$A$1:$A$31,$B$1:$B$31)&
LOOKUP(BITS(G4,0,4),$A$1:$A$31,$B$1:$B$31)
And now you can convert that hex code to a manufacturer ID.
The product code is easy, just reverse the little endian:
So if your hexdump looks like this:
00000000 00 ff ff ff ff ff ff 00 10 ac 15 a0 35 34 38 36 |................|
10ac = DEL
15a0 = A015
for the PNP code of DELA015
And if you want to get rid of the lookup table, you can just compute it with another function:
function pnpletter(code) as string pnpletter=chr$(code+ASC("A")-1) end function
which makes our cell h4 formula
=PNPLETTER(BITS(G4,10,14))&PNPLETTER(BITS(G4,5,9))&PNPLETTER(BITS(G4,0,4))
It would have been neat to have it "human readable" without bit fiddling but I guess they wanted to save a byte here and there.
Thursday, April 20, 2017
Sceptre X9 19" monitor hates DDC/CI
So I thought I see if a Sceptre X9 KOMODO 19" monitor from 2005 would work with DDC/CI.
It really hates it.
Running "sudo get-edid | parse-edid" before trying ddccontrol looks good:
sudo get-edid -b 1 | parse-edid
This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
Only trying 1 as per your request.
256-byte EDID successfully retrieved from i2c bus 1
Looks like i2c was successful. Have a good day.
Checksum Correct
Section "Monitor"
Identifier "KOMODO V"
ModelName "KOMODO V"
VendorName "SPT"
# Monitor Manufactured week 22 of 2005
# EDID version 1.3
# Analog Display
Option "SyncOnGreen" "true"
DisplaySize 380 300
Gamma 2.20
Option "DPMS" "true"
Horizsync 24-80
VertRefresh 50-75
# Maximum pixel clock is 140MHz
#Not giving standard mode: 1280x1024, 60Hz
#Not giving standard mode: 1280x960, 60Hz
#Not giving standard mode: 1152x864, 75Hz
#Not giving standard mode: 1024x768, 66Hz
Modeline "Mode 0" 108.00 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync
EndSection
and looking at it with hexdump
then if I run
sudo ddccontrol -c dev:/dev/i2c-1
I get this:
sudo ddccontrol dev:/dev/i2c-1
ddccontrol version 0.4.2
Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su)
Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch)
This program comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of this program under the terms of the GNU General Public License.
Reading EDID and initializing DDC/CI at bus dev:/dev/i2c-1...
ioctl(): No such device or address
ioctl returned -1
Reading EDID 0x50 failed.
DDC/CI at dev:/dev/i2c-1 is unusable (-2).
If your graphics card need it, please check all the required kernel modules are loaded (i2c-dev, and your framebuffer driver).
and now the monitor won't respond to any get-edid requests:
and if I want to have the EDID working again, I must unplug and plug in the monitor to reset it. Just pressing the power button on the monitor isn't enough since I guess it still has standby power.
It really hates it.
Running "sudo get-edid | parse-edid" before trying ddccontrol looks good:
sudo get-edid -b 1 | parse-edid
This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
Only trying 1 as per your request.
256-byte EDID successfully retrieved from i2c bus 1
Looks like i2c was successful. Have a good day.
Checksum Correct
Section "Monitor"
Identifier "KOMODO V"
ModelName "KOMODO V"
VendorName "SPT"
# Monitor Manufactured week 22 of 2005
# EDID version 1.3
# Analog Display
Option "SyncOnGreen" "true"
DisplaySize 380 300
Gamma 2.20
Option "DPMS" "true"
Horizsync 24-80
VertRefresh 50-75
# Maximum pixel clock is 140MHz
#Not giving standard mode: 1280x1024, 60Hz
#Not giving standard mode: 1280x960, 60Hz
#Not giving standard mode: 1152x864, 75Hz
#Not giving standard mode: 1024x768, 66Hz
Modeline "Mode 0" 108.00 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync
EndSection
and looking at it with hexdump
sudo get-edid -b 1 | hexdump -C This is read-edid version 3.0.2. Prepare for some fun. Attempting to use i2c interface Only trying 1 as per your request. 256-byte EDID successfully retrieved from i2c bus 1 Looks like i2c was successful. Have a good day. 00000000 00 ff ff ff ff ff ff 00 4e 14 2a 19 af 0a 00 00 |........N.*.....| 00000010 16 0f 01 03 6f 26 1e 78 ea 68 75 a2 5a 49 9f 23 |....o&.x.hu.ZI.#| 00000020 13 50 54 bf ef 80 81 80 81 40 71 4f 61 46 01 01 |.PT......@qOaF..| 00000030 01 01 01 01 01 01 30 2a 00 98 51 00 2a 40 30 70 |......0*..Q.*@0p| 00000040 13 00 78 2d 11 00 00 1e 00 00 00 fd 00 32 4b 18 |..x-.........2K.| 00000050 50 0e 00 0a 20 20 20 20 20 20 00 00 00 fc 00 53 |P... .....S| 00000060 63 65 70 74 72 65 20 58 39 47 2d 0a 00 00 00 fc |ceptre X9G-.....| 00000070 00 4b 4f 4d 4f 44 4f 20 56 0a 20 20 20 20 00 bc |.KOMODO V. ..| 00000080 64 00 72 10 d8 da b9 51 73 5e 10 b9 82 90 23 59 |d.r....Qs^....#Y| 00000090 3e 94 48 fc 06 73 9e 34 20 64 8e 00 20 54 0a 96 |>.H..s.4 d.. T..| 000000a0 91 15 04 11 8a 18 c9 01 26 14 81 e3 86 c1 71 18 |........&.....q.| 000000b0 19 21 54 a1 d9 69 9d 20 34 32 d2 87 b8 39 17 18 |.!T..i. 42...9..| 000000c0 9c 1a 8e 07 18 80 25 34 a1 a0 21 d0 42 93 a5 66 |......%4..!.B..f| 000000d0 90 2a 02 00 ec 48 44 b9 74 e6 98 40 61 40 26 3a |.*...HD.t..@a@&:| 000000e0 20 b6 84 8c 2a cc 06 10 68 05 44 20 40 46 09 81 | ...*...h.D @F..| 000000f0 9b f4 ab 5b 28 2c 2d 03 90 b6 36 5a 83 c8 84 93 |...[(,-...6Z....| 00000100
then if I run
sudo ddccontrol -c dev:/dev/i2c-1
I get this:
sudo ddccontrol dev:/dev/i2c-1
ddccontrol version 0.4.2
Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su)
Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch)
This program comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of this program under the terms of the GNU General Public License.
Reading EDID and initializing DDC/CI at bus dev:/dev/i2c-1...
ioctl(): No such device or address
ioctl returned -1
Reading EDID 0x50 failed.
DDC/CI at dev:/dev/i2c-1 is unusable (-2).
If your graphics card need it, please check all the required kernel modules are loaded (i2c-dev, and your framebuffer driver).
and now the monitor won't respond to any get-edid requests:
sudo get-edid -b 1 | hexdump -C 1 This is read-edid version 3.0.2. Prepare for some fun. Attempting to use i2c interface Only trying 1 as per your request. Bus 1 doesn't really have an EDID... Couldn't find an accessible EDID on this bus. Attempting to use the classical VBE interface Performing real mode VBE call Interrupt 0x10 ax=0x4f00 bx=0x0 cx=0x0 Function supported Call successful VBE version 300 VBE string at 0x11100 "Intel(R) Sandybridge/Ivybridge Graphics Chipset Accelerated VGA BIOS" VBE/DDC service about to be called Report DDC capabilities Performing real mode VBE call Interrupt 0x10 ax=0x4f15 bx=0x0 cx=0x0 Function supported Call successful Monitor and video card combination does not support DDC1 transfers Monitor and video card combination supports DDC2 transfers 0 seconds per 128 byte EDID block transfer Screen is not blanked during DDC transfer Reading next EDID block VBE/DDC service about to be called Read EDID Performing real mode VBE call Interrupt 0x10 ax=0x4f15 bx=0x1 cx=0x0 Function supported Call failed The EDID data should not be trusted as the VBE call failed Looks like VBE was successful. Have a good day. 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000080
and if I want to have the EDID working again, I must unplug and plug in the monitor to reset it. Just pressing the power button on the monitor isn't enough since I guess it still has standby power.
Making a ddccontrol-db file for Sun 24.1 v4 LCD
gddccontrol seems to run better with a ddccontrol-db file for a monitor. Otherwise it will give you a dialog saying it's trying to use a generic profile.
so we run
sudo ddccontrol -c -p
and copy and paste that into our SUN059A.xml file that we've created.
It seems to be happier when it has the vcp completely enclosed in parentheses like so: (vcp(...))
Otherwise it gives you a little error message on the console like "error in caps add".
Another thing that's kind of neat is that you can drag the gddccontrol window to the other monitor (if you're doing the dual monitor thing) and it will choose the "other monitor."
So if you've made a file in /usr/share/ddccontrol-db/monitors you won't have to click on OK every time you choose that monitor (either from the dropdown menu or by dragging the gddccontrol window to the other monitor).
Wednesday, April 19, 2017
Making My Dell E193FP work with gddccontrol
So I have a Dell E193FP which supports DDC/CI. But gddccontrol doesn't have a monitor description file for it.
Looking at a sample file in /usr/share/ddccontrol-db/monitors, it looks pretty simple.
Here's the file for DELA010.xml
so it looks like the file is fairly straightforward.
For my E193FP I ran ddccontrol -c -d -p and it gave me the vcp capabilities string, and I made a file with the name of the monitor PNP code with the suffix .xml for DEL700E.xml.
sudo ddccontrol -c -d dev:/dev/i2c-1
ddccontrol version 0.4.2
Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su)
Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch)
This program comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of this program under the terms of the GNU General Public License.
Reading EDID and initializing DDC/CI at bus dev:/dev/i2c-1...
EDID readings:
Plug and Play ID: DEL700E [Dell Dell E193FP (VGA)]
Input type: Analog
Capabilities:
Raw output: type(LCD)vcp(04 06 08 0E 10 12 14(05 08 0b 0c) 16 18 1A 1E 20 30 3E 62 68(00 01 02 03 04) 38 39)
Parsed output:
VCP: 04 06 08 0e 10 12 14 16 18 1a 1e 20 30 38 39 3e 62 68
Type: Unknown
Controls (valid/current/max) [Description - Value name]:
Control 0x04: +/0/65535 C [Restore Factory Defaults]
Control 0x06: +/0/65535 C [Restore Factory Default Geometry]
Control 0x08: +/0/65535 C [Restore Factory Default Color]
Control 0x0e: +/50/100 C [Image Lock Coarse (Clock)]
Control 0x10: +/100/100 C [Brightness]
Control 0x12: +/75/100 C [Contrast]
Control 0x14: +/11/13 C [???]
Control 0x16: +/255/255 C [Red maximum level]
Control 0x18: +/255/255 C [Green maximum level]
Control 0x1a: +/255/255 C [Blue maximum level]
Control 0x1e: +/0/65535 C [Automatically adjust]
Control 0x20: +/50/100 C [Horizontal Position]
Control 0x30: +/32/64 C [Vertical Position]
Control 0x3e: +/52/63 C [Image Lock Fine (Clock Phase)]
Control 0x68: +/0/65535 C [???]
Control 0x9b: +/255/255 [???]
Control 0x9d: +/255/255 [???]
Control 0x9f: +/255/255 [???]
I took the vcp string and copied and pasted it into my DEL700E.xml like so, along with an include line to include the VESA.xml file as well.
and copying it to the /usr/share/ddccontrol-db/monitor directory:
sudo cp -v DEL700E.xml /usr/share/ddccontrol-db/monitor/
and now gddccontrol doesn't give me a "zero" tab anymore, and I can change brightness and contrast.
Yay!
Looking at a sample file in /usr/share/ddccontrol-db/monitors, it looks pretty simple.
Here's the file for DELA010.xml
so it looks like the file is fairly straightforward.
For my E193FP I ran ddccontrol -c -d -p and it gave me the vcp capabilities string, and I made a file with the name of the monitor PNP code with the suffix .xml for DEL700E.xml.
sudo ddccontrol -c -d dev:/dev/i2c-1
ddccontrol version 0.4.2
Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su)
Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch)
This program comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of this program under the terms of the GNU General Public License.
Reading EDID and initializing DDC/CI at bus dev:/dev/i2c-1...
EDID readings:
Plug and Play ID: DEL700E [Dell Dell E193FP (VGA)]
Input type: Analog
Capabilities:
Raw output: type(LCD)vcp(04 06 08 0E 10 12 14(05 08 0b 0c) 16 18 1A 1E 20 30 3E 62 68(00 01 02 03 04) 38 39)
Parsed output:
VCP: 04 06 08 0e 10 12 14 16 18 1a 1e 20 30 38 39 3e 62 68
Type: Unknown
Controls (valid/current/max) [Description - Value name]:
Control 0x04: +/0/65535 C [Restore Factory Defaults]
Control 0x06: +/0/65535 C [Restore Factory Default Geometry]
Control 0x08: +/0/65535 C [Restore Factory Default Color]
Control 0x0e: +/50/100 C [Image Lock Coarse (Clock)]
Control 0x10: +/100/100 C [Brightness]
Control 0x12: +/75/100 C [Contrast]
Control 0x14: +/11/13 C [???]
Control 0x16: +/255/255 C [Red maximum level]
Control 0x18: +/255/255 C [Green maximum level]
Control 0x1a: +/255/255 C [Blue maximum level]
Control 0x1e: +/0/65535 C [Automatically adjust]
Control 0x20: +/50/100 C [Horizontal Position]
Control 0x30: +/32/64 C [Vertical Position]
Control 0x3e: +/52/63 C [Image Lock Fine (Clock Phase)]
Control 0x68: +/0/65535 C [???]
Control 0x9b: +/255/255 [???]
Control 0x9d: +/255/255 [???]
Control 0x9f: +/255/255 [???]
I took the vcp string and copied and pasted it into my DEL700E.xml like so, along with an include line to include the VESA.xml file as well.
and copying it to the /usr/share/ddccontrol-db/monitor directory:
sudo cp -v DEL700E.xml /usr/share/ddccontrol-db/monitor/
and now gddccontrol doesn't give me a "zero" tab anymore, and I can change brightness and contrast.
Yay!
Saturday, April 15, 2017
Fiddling with the fridge
So the fridge was acting up, and we thought we'd have a look at it.
Surprisingly, it was pretty low tech inside. I was expecting to find a circuit board with a microprocessor.
Nope! Just a thermostat switch, a defrost timer and wire harnesses hooking them up.
The design is rather simple: The coils in the freezer have a fan that blows air around and a vent connects the refrigerator part, dropping cold air into the fridge.
The defrost timer is pretty basic, just a 12 hour timer. It's not unlike the timers that plug into a light socket that will turn your lights on and off in a set pattern.
The company was kind enough to include a paper schematic tucked inside the module in the top of the fridge that has the thermostat and the defrost timer. I guess that is the "service manual."
Taking the cover panel off in the freezer revealed the coil/radiator all iced up.
The control that determines the coldness of the freezer is just like a pivoting fireplace damper.
Less cold = more airflow to the fridge, coldest = more airflow to the freezer.
Someone (who will go nameless and blameless) stacked up some stuff that blocked the air vents that come down from the freezer. Maybe that caused it to ice up the coils in the freezer. The thermostat switch lives down in the refrigerator part, so if it isn't getting cold air it just runs and runs and the ice builds up. Once the ice builds up, air doesn't flow freely over the radiator, the thermostat doesn't shut off, and it keeps going in a positive feedback loop.
Since the fridge wasn't getting cold, turning the damper control in the freezer to "Coldest" or the thermostat in the fridge to "Colder" just made it worse, since the ice just kept building.
I'm not sure that we actually fixed anything, but after defrosting and reassembling it's working fine now. Fingers crossed.
Surprisingly, it was pretty low tech inside. I was expecting to find a circuit board with a microprocessor.
Nope! Just a thermostat switch, a defrost timer and wire harnesses hooking them up.
The design is rather simple: The coils in the freezer have a fan that blows air around and a vent connects the refrigerator part, dropping cold air into the fridge.
The defrost timer is pretty basic, just a 12 hour timer. It's not unlike the timers that plug into a light socket that will turn your lights on and off in a set pattern.
The company was kind enough to include a paper schematic tucked inside the module in the top of the fridge that has the thermostat and the defrost timer. I guess that is the "service manual."
Taking the cover panel off in the freezer revealed the coil/radiator all iced up.
The control that determines the coldness of the freezer is just like a pivoting fireplace damper.
Less cold = more airflow to the fridge, coldest = more airflow to the freezer.
Someone (who will go nameless and blameless) stacked up some stuff that blocked the air vents that come down from the freezer. Maybe that caused it to ice up the coils in the freezer. The thermostat switch lives down in the refrigerator part, so if it isn't getting cold air it just runs and runs and the ice builds up. Once the ice builds up, air doesn't flow freely over the radiator, the thermostat doesn't shut off, and it keeps going in a positive feedback loop.
Since the fridge wasn't getting cold, turning the damper control in the freezer to "Coldest" or the thermostat in the fridge to "Colder" just made it worse, since the ice just kept building.
I'm not sure that we actually fixed anything, but after defrosting and reassembling it's working fine now. Fingers crossed.
Wednesday, April 12, 2017
Got Hoopladigital working on Firefox 52 and Ubuntu 16.04
Yay! I've been able to get hoopla digital working on Firefox 52 and Ubuntu 16.04.
Now Firefox has the DRM stuff which you have to enable at about:preferences#content by checking the Enable DRM box. I thought that was it, but I had to do a little more.
The secret? I don't know exactly what was missing, but I think it was the H.264 codec.
http://askubuntu.com/questions/389437/how-do-i-get-html5-h-264-video-working-on-firefox
and going to the youtube HTML5 video checker told me that h.264 was not present (that's why some youtube videos won't play for me):
https://www.youtube.com/html5
So running
sudo apt-get install ubuntu-restricted-extras
gets everything sorted, (and you need to restart firefox) and presto! Hoopla works!
I have struggled mightily and gotten quite discouraged but I'm happy now.
Now Firefox has the DRM stuff which you have to enable at about:preferences#content by checking the Enable DRM box. I thought that was it, but I had to do a little more.
The secret? I don't know exactly what was missing, but I think it was the H.264 codec.
http://askubuntu.com/questions/389437/how-do-i-get-html5-h-264-video-working-on-firefox
and going to the youtube HTML5 video checker told me that h.264 was not present (that's why some youtube videos won't play for me):
https://www.youtube.com/html5
So running
sudo apt-get install ubuntu-restricted-extras
gets everything sorted, (and you need to restart firefox) and presto! Hoopla works!
I have struggled mightily and gotten quite discouraged but I'm happy now.
Fixing HDMI overscan at 1920x1080 on a Seiki 22" TV SE22HY01
So I thought I'd try to see if ddc/ci would work on a seiki 22" TV SE22HY01 but it doesn't support DDC/CI. *sniff*
But I encountered another problem: on the HDMI input, I would get overscanned video so the edges of the ubuntu screen were chopped off.
On this webpage, there was a tip that you could pass xrandr a transformation matrix to resize the screen.
https://newagesoldier.com/linux-hdmi-resize-screen-overscan-fix-ubuntu/
xrandr --output HDMI1 --transform 1.05,0,-35,0,1.05,-19,0,0,1
and I tried that but it seemed to do bilinear filtering, and bilinear filtering of text is absolutely terrible.
So I tried to do a custom resolution with xrandr: (note that I asked for 1900 pixels wide but it rounded it to 1904)
cvt 1900 900
xrandr --newmode "1904x900_60.00" 140.50 1904 2016 2208 2512 900 903 913 934 -hsync +vsync
xrandr --addmode HDMI1 "1904x900_60.00"
and then going to the ubuntu control panel and selecting my new custom resolution and voila! I can see the edges of the screen properly.
if I run xrandr you can see my custom resolution there:
xrandr
Screen 0: minimum 8 x 8, current 1904 x 900, maximum 32767 x 32767
DP1 disconnected (normal left inverted right x axis y axis)
HDMI1 connected primary 1904x900+0+0 (normal left inverted right x axis y axis) 476mm x 268mm
1920x1080 60.00 + 60.00 50.00 59.94 30.00 25.00 24.00 29.97 23.98
1920x1080i 60.00 60.00 50.00 59.94
1904x900 59.88*
1280x1024 60.02
1280x720 60.61 60.00 50.00 59.94
1024x768 75.08 70.07 60.00
800x600 72.19 75.00 60.32
720x576 50.00
720x576i 50.00
720x480 60.00 59.94
720x480i 60.00 59.94
640x480 75.00 72.81 60.00 59.94
720x400 70.08
1904x900_60.00 59.88
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
I could probably try to fiddle with the resolution a bit to get it bigger but this worked the first time so I'm happy enough.
sudo get-edid | parse-edid
This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
Section "Monitor"
Identifier "SE22HY01"
ModelName "SE22HY01"
VendorName "SEK"
# Monitor Manufactured week 50 of 2012
# EDID version 1.3
# Digital Display
DisplaySize 480 270
Gamma 2.20
Option "DPMS" "false"
Horizsync 30-80
VertRefresh 47-63
...
EndSection
=======================
Hmmm. I think I can get a little better resolution that's the same aspect ratio, let's try 98 percent:
so from a bash command prompt let's do a little math with the double parenthesis thing:
echo $((1920*98))
188160
echo $((1080*98))
105840
so multiplying by 98 gives me the percent multiply if I drop the last two digits of the result: 1882x1058
cvt 1882 1058
xrandr --newmode "1888x1058_60.00" 166.25 1888 2008 2208 2528 1058 1061 1071 1098 -hsync +vsync
xrandr --addmode HDMI1 "1888x1058_60.00"
It seems if I choose 1920x1080 the TV wants to do overscan, but any other resolution it will fill the screen as I would expect.
Hmmmm. so why not try just a little different resolution that's close to 1920x1080 like say 1910x1080
cvt 1910 1080
xrandr --newmode "1912x1080_60.00" 171.25 1912 2032 2232 2552 1080 1083 1093 1120 -hsync +vsync
xrandr --addmode HDMI1 "1912x1080_60.00"
and yes, no pesky overscan and practically full HD resolution, minus 8 pixels.
Hmmmmm. why not try full horiz resolution but take away one horizontal line for 1920x1079.
cvt 1920 1079
xrandr --newmode "1920x1079_60.00" 172.75 1920 2048 2248 2576 1079 1082 1092 1119 -hsync +vsync
xrandr --addmode HDMI1 "1920x1079_60.00"
Beauty. No overscan and I only lose one line of resolution.
I still can't understand why you would want overscan when you have a perfect 1920x1080 signal that would fill the screen.
If I pump a 1920x1080 signal into the VGA input of the TV it displays without overscan, so why would it do that on the HDMI?
The other annoying thing is that it won't go into a power save mode on the HDMI input. Instead of doing the energy star power save, it displays the message "Not Support".
If I want to put it into power save, I have to put the computer into standby and after a bit it will turn itself off. I have to manually turn the TV back on after the computer has resumed from standby.
But I encountered another problem: on the HDMI input, I would get overscanned video so the edges of the ubuntu screen were chopped off.
On this webpage, there was a tip that you could pass xrandr a transformation matrix to resize the screen.
https://newagesoldier.com/linux-hdmi-resize-screen-overscan-fix-ubuntu/
xrandr --output HDMI1 --transform 1.05,0,-35,0,1.05,-19,0,0,1
and I tried that but it seemed to do bilinear filtering, and bilinear filtering of text is absolutely terrible.
So I tried to do a custom resolution with xrandr: (note that I asked for 1900 pixels wide but it rounded it to 1904)
cvt 1900 900
xrandr --newmode "1904x900_60.00" 140.50 1904 2016 2208 2512 900 903 913 934 -hsync +vsync
xrandr --addmode HDMI1 "1904x900_60.00"
and then going to the ubuntu control panel and selecting my new custom resolution and voila! I can see the edges of the screen properly.
if I run xrandr you can see my custom resolution there:
xrandr
Screen 0: minimum 8 x 8, current 1904 x 900, maximum 32767 x 32767
DP1 disconnected (normal left inverted right x axis y axis)
HDMI1 connected primary 1904x900+0+0 (normal left inverted right x axis y axis) 476mm x 268mm
1920x1080 60.00 + 60.00 50.00 59.94 30.00 25.00 24.00 29.97 23.98
1920x1080i 60.00 60.00 50.00 59.94
1904x900 59.88*
1280x1024 60.02
1280x720 60.61 60.00 50.00 59.94
1024x768 75.08 70.07 60.00
800x600 72.19 75.00 60.32
720x576 50.00
720x576i 50.00
720x480 60.00 59.94
720x480i 60.00 59.94
640x480 75.00 72.81 60.00 59.94
720x400 70.08
1904x900_60.00 59.88
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
I could probably try to fiddle with the resolution a bit to get it bigger but this worked the first time so I'm happy enough.
sudo get-edid | parse-edid
This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
Section "Monitor"
Identifier "SE22HY01"
ModelName "SE22HY01"
VendorName "SEK"
# Monitor Manufactured week 50 of 2012
# EDID version 1.3
# Digital Display
DisplaySize 480 270
Gamma 2.20
Option "DPMS" "false"
Horizsync 30-80
VertRefresh 47-63
...
EndSection
=======================
Hmmm. I think I can get a little better resolution that's the same aspect ratio, let's try 98 percent:
so from a bash command prompt let's do a little math with the double parenthesis thing:
echo $((1920*98))
188160
echo $((1080*98))
105840
so multiplying by 98 gives me the percent multiply if I drop the last two digits of the result: 1882x1058
cvt 1882 1058
xrandr --newmode "1888x1058_60.00" 166.25 1888 2008 2208 2528 1058 1061 1071 1098 -hsync +vsync
xrandr --addmode HDMI1 "1888x1058_60.00"
It seems if I choose 1920x1080 the TV wants to do overscan, but any other resolution it will fill the screen as I would expect.
Hmmmm. so why not try just a little different resolution that's close to 1920x1080 like say 1910x1080
cvt 1910 1080
xrandr --newmode "1912x1080_60.00" 171.25 1912 2032 2232 2552 1080 1083 1093 1120 -hsync +vsync
xrandr --addmode HDMI1 "1912x1080_60.00"
and yes, no pesky overscan and practically full HD resolution, minus 8 pixels.
Hmmmmm. why not try full horiz resolution but take away one horizontal line for 1920x1079.
cvt 1920 1079
xrandr --newmode "1920x1079_60.00" 172.75 1920 2048 2248 2576 1079 1082 1092 1119 -hsync +vsync
xrandr --addmode HDMI1 "1920x1079_60.00"
Beauty. No overscan and I only lose one line of resolution.
I still can't understand why you would want overscan when you have a perfect 1920x1080 signal that would fill the screen.
If I pump a 1920x1080 signal into the VGA input of the TV it displays without overscan, so why would it do that on the HDMI?
The other annoying thing is that it won't go into a power save mode on the HDMI input. Instead of doing the energy star power save, it displays the message "Not Support".
If I want to put it into power save, I have to put the computer into standby and after a bit it will turn itself off. I have to manually turn the TV back on after the computer has resumed from standby.
Sunday, April 9, 2017
gddcontrol and older dell e176fp, e196 and 1901FP, 1905FP
from my experiments, ddccontrol doesn't like the dell e176FP, e177FP, e196 giving lots of ???? marks.
When I ask it for properties, it seems to have lots of ??? marks in the list, and if it has ??? marks, gddccontrol won't work, giving you the "zero" tab with no controls.
It'd be cool if gddccontrol would let you try to send the codes for brightness and contrast even if it can't read all the capabilities. I only really care about brightness and contrast anyway.
When I ask it for properties, it seems to have lots of ??? marks in the list, and if it has ??? marks, gddccontrol won't work, giving you the "zero" tab with no controls.
It'd be cool if gddccontrol would let you try to send the codes for brightness and contrast even if it can't read all the capabilities. I only really care about brightness and contrast anyway.
sudo ddccontrol -c -d dev:/dev/i2c-1 EDID readings: Plug and Play ID: DELA014 [VESA standard monitor] Input type: Analog Capabilities: Raw output: type(LCD)vcp(page0(02 04 05 06 08 0E 10 12 14(01 03 04 05 06 08) 16 18 1A 1E 20 30 3E 60 62 68(1) 8A 8C 9B 9C 9D 9E 9F A0 AC AE B6 C0 C6 C8 C9 CA D6(01 02 03 04) DF FA FB FC FD) page2(37 38 39))asset_eep(40)mccs_ver(2.0) Parsed output: VCP: Type: Unknown Controls (valid/current/max) [Description - Value name]: Control 0x02: +/512/65535 [???] Control 0x04: +/0/65535 [???] Control 0x05: +/0/65535 [???] Control 0x06: +/0/65535 [???] Control 0x08: +/0/65535 [???] Control 0x0e: +/50/100 [???] Control 0x10: +/255/255 [???] Control 0x12: +/50/170 [???] Control 0x14: +/1280/65535 [???] Control 0x16: +/255/255 [???] Control 0x18: +/255/255 [???] Control 0x1a: +/255/255 [???] Control 0x1e: +/0/65535 [???] Control 0x20: +/50/100 [???] Control 0x30: +/36/72 [???] Control 0x3e: +/8/63 [???] Control 0x60: +/256/65535 [???] Control 0x68: +/256/65535 [???] Control 0x9b: +/255/255 [???] Control 0x9d: +/255/255 [???] Control 0x9f: +/255/255 [???] Control 0xac: +/32514/65535 [???] Control 0xae: +/22274/65535 [???] Control 0xb6: +/768/65535 [???] Control 0xc0: +/0/65535 [???] Control 0xc6: +/65535/65535 [???] Control 0xc8: +/8706/65535 [???] Control 0xc9: +/258/65535 [???] Control 0xca: +/256/65535 [???] Control 0xd6: +/256/65535 [???] Control 0xdf: +/512/65535 [???] However, the monitors will respond to manually specifying properties: sudo ddccontrol dev:/dev/i2c-1 -r 0x10 -w 60 sudo ddccontrol dev:/dev/i2c-1 -r 0x12 -w 60 0x10 being brightness 0x12 being contrast one of the interesting things is that different versions of the e176FP (like e176FPf versus e176FPm) give slightly different ranges for the 0x10 and 0x12 properties. the e176FPf has a range to 255 for brightness, to 170 for contrast Control 0x10: +/255/255 [???] Control 0x12: +/50/170 [???] the e176FPm has a range to 100 for brightness, to 169 for contrast Control 0x10: +/50/100 [???] Control 0x11: +/0/65535 [???] Control 0x12: +/90/169 [???] the 1901FP gives lots of strange errors also, however manually setting brightness/contrast works. the 1905FP gives error messages, but it gives enough information that gddccontrol works. cat dell_e176FPf_ddc.txt ddccontrol version 0.4.2 Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su) Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch) This program comes with ABSOLUTELY NO WARRANTY. You may redistribute copies of this program under the terms of the GNU General Public License. Reading EDID and initializing DDC/CI at bus dev:/dev/i2c-1... EDID readings: Plug and Play ID: DELA014 [VESA standard monitor] Input type: Analog =============================== WARNING =============================== There is no support for your monitor in the database, but ddccontrol is using a basic generic profile. Many controls will not be supported, and some controls may not work as expected. Please update ddccontrol-db, or, if you are already using the latest version, please send the output of the following command to ddccontrol-users@lists.sourceforge.net: LANG= LC_ALL= ddccontrol -p -c -d Thank you. =============================== WARNING =============================== Capabilities: Raw output: type(LCD)vcp(page0(02 04 05 06 08 0E 10 12 14(01 03 04 05 06 08) 16 18 1A 1E 20 30 3E 60 62 68(1) 8A 8C 9B 9C 9D 9E 9F A0 AC AE B6 C0 C6 C8 C9 CA D6(01 02 03 04) DF FA FB FC FD) page2(37 38 39))asset_eep(40)mccs_ver(2.0) Parsed output: VCP: Type: Unknown Controls (valid/current/max) [Description - Value name]: Control 0x02: +/512/65535 [???] Control 0x04: +/0/65535 [???] Control 0x05: +/0/65535 [???] Control 0x06: +/0/65535 [???] Control 0x08: +/0/65535 [???] Control 0x0e: +/50/100 [???] Control 0x10: +/255/255 [???] Control 0x12: +/50/170 [???] Control 0x14: +/1280/65535 [???] Control 0x16: +/255/255 [???] Control 0x18: +/255/255 [???] Control 0x1a: +/255/255 [???] Control 0x1e: +/0/65535 [???] Control 0x20: +/50/100 [???] Control 0x30: +/24/48 [???] Control 0x3e: +/20/63 [???] Control 0x60: +/256/65535 [???] Control 0x68: +/256/65535 [???] Control 0x9b: +/255/255 [???] Control 0x9d: +/255/255 [???] Control 0x9f: +/255/255 [???] Control 0xac: +/57857/65535 [???] Control 0xae: +/22018/65535 [???] Control 0xb6: +/768/65535 [???] Control 0xc0: +/0/65535 [???] Control 0xc6: +/65535/65535 [???] Control 0xc8: +/8706/65535 [???] Control 0xc9: +/258/65535 [???] Control 0xca: +/256/65535 [???] Control 0xd6: +/256/65535 [???] Control 0xdf: +/512/65535 [???] Section "Monitor" Identifier "DELL E176FP" ModelName "DELL E176FP" VendorName "DEL" # Monitor Manufactured week 45 of 2005 # EDID version 1.3 # Analog Display DisplaySize 340 270 Gamma 2.20 Option "DPMS" "true" Horizsync 31-80 VertRefresh 56-75 # Maximum pixel clock is 140MHz #Not giving standard mode: 1152x864, 75Hz #Not giving standard mode: 1280x1024, 60Hz Modeline "Mode 0" 108.00 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync EndSection It's interesting to compare the output from different monitors, here's a comparison between an e176FPf and an e196FPb: I made a little crap script that would run ddccontrol, get-edid, and xrandr to compare the output. =================================== #!/bin/bash sudo ddccontrol -c -d dev:/dev/i2c-1 >> $1 sudo get-edid | parse-edid >> $1 xrandr --verbose >> $1 xrandr >> $1 =============================== diff dell_e176FPf_ddc.txt dell_e196FPb_ddc.txt 10c10 < Plug and Play ID: DELA014 [VESA standard monitor] --- > Plug and Play ID: DELA015 [VESA standard monitor] 26c26 < Raw output: type(LCD)vcp(page0(02 04 05 06 08 0E 10 12 14(01 03 04 05 06 08) 16 18 1A 1E 20 30 3E 60 62 68(1) 8A 8C 9B 9C 9D 9E 9F A0 AC AE B6 C0 C6 C8 C9 CA D6(01 02 03 04) DF FA FB FC FD) page2(37 38 39))asset_eep(40)mccs_ver(2.0) --- > Raw output: type(LCD)vcp(page0(02 04 05 08 0E 10 12 14(01 06 08 0B) 16 18 1A 1E 20 30 3E 52 AC AE B2 B6 C0 C6 C8 C9 CA D6(01 02 03 04) DF)) 32c32 < Control 0x02: +/512/65535 [???] --- > Control 0x02: +/256/65535 [???] 38,43c38,43 < Control 0x10: +/255/255 [???] < Control 0x12: +/50/170 [???] < Control 0x14: +/1280/65535 [???] < Control 0x16: +/255/255 [???] < Control 0x18: +/255/255 [???] < Control 0x1a: +/255/255 [???] --- > Control 0x10: +/75/100 [???] > Control 0x12: +/75/100 [???] > Control 0x14: +/5/11 [???] > Control 0x16: +/100/100 [???] > Control 0x18: +/100/100 [???] > Control 0x1a: +/100/100 [???] 46,47c46,47 < Control 0x30: +/24/48 [???] < Control 0x3e: +/20/63 [???] --- > Control 0x30: +/37/74 [???] > Control 0x3e: +/37/63 [???] 50,54c50,54 < Control 0x9b: +/255/255 [???] < Control 0x9d: +/255/255 [???] < Control 0x9f: +/255/255 [???] < Control 0xac: +/57857/65535 [???] < Control 0xae: +/22018/65535 [???] --- > Control 0x9b: +/100/100 [???] > Control 0x9d: +/100/100 [???] > Control 0x9f: +/100/100 [???] > Control 0xac: +/32514/65535 [???] > Control 0xae: +/22274/65535 [???] 56c56 < Control 0xc0: +/0/65535 [???] --- > Control 0xc0: +/36924/65535 [???] 62a63 > Control 0xff: +/0/65535 [???] 64,65c65,66 < Identifier "DELL E176FP" < ModelName "DELL E176FP" --- > Identifier "DELL E196FP" > ModelName "DELL E196FP" 67c68 < # Monitor Manufactured week 45 of 2005 --- > # Monitor Manufactured week 24 of 2006 70c71 < DisplaySize 340 270 --- > DisplaySize 380 300 73c74 < Horizsync 31-80 --- > Horizsync 31-83 ===================================== comparing an e176FPf that doesn't work with gddccontrol to a dell 1905FP which does work with gddccontrol diff dell_e176FPf_ddc.txt dell1905FP.txt 10c10 < Plug and Play ID: DELA014 [VESA standard monitor] --- > Plug and Play ID: DEL400C [Dell 1905FP (analog)] 12,23d11 < =============================== WARNING =============================== < There is no support for your monitor in the database, but ddccontrol is < using a basic generic profile. Many controls will not be supported, and < some controls may not work as expected. < Please update ddccontrol-db, or, if you are already using the latest < version, please send the output of the following command to < ddccontrol-users@lists.sourceforge.net: < < LANG= LC_ALL= ddccontrol -p -c -d < < Thank you. < =============================== WARNING =============================== 26c14 < Raw output: type(LCD)vcp(page0(02 04 05 06 08 0E 10 12 14(01 03 04 05 06 08) 16 18 1A 1E 20 30 3E 60 62 68(1) 8A 8C 9B 9C 9D 9E 9F A0 AC AE B6 C0 C6 C8 C9 CA D6(01 02 03 04) DF FA FB FC FD) page2(37 38 39))asset_eep(40)mccs_ver(2.0) --- > Raw output: vcp(04 06 08 0E 10 12 14(05 08 0B) 16 18 1A 1E 20 30 B6) type(LCD) mccs_ver(1.1) asset_eep(32) mpu(1.02) 28c16 < VCP: --- > VCP: 04 06 08 0e 10 12 14 16 18 1a 1e 20 30 3e 68 32,62c20,40 < Control 0x02: +/512/65535 [???] < Control 0x04: +/0/65535 [???] < Control 0x05: +/0/65535 [???] < Control 0x06: +/0/65535 [???] < Control 0x08: +/0/65535 [???] < Control 0x0e: +/50/100 [???] < Control 0x10: +/255/255 [???] < Control 0x12: +/50/170 [???] < Control 0x14: +/1280/65535 [???] < Control 0x16: +/255/255 [???] < Control 0x18: +/255/255 [???] < Control 0x1a: +/255/255 [???] < Control 0x1e: +/0/65535 [???] < Control 0x20: +/50/100 [???] < Control 0x30: +/24/48 [???] < Control 0x3e: +/20/63 [???] < Control 0x60: +/256/65535 [???] < Control 0x68: +/256/65535 [???] < Control 0x9b: +/255/255 [???] < Control 0x9d: +/255/255 [???] < Control 0x9f: +/255/255 [???] < Control 0xac: +/57857/65535 [???] < Control 0xae: +/22018/65535 [???] < Control 0xb6: +/768/65535 [???] < Control 0xc0: +/0/65535 [???] < Control 0xc6: +/65535/65535 [???] < Control 0xc8: +/8706/65535 [???] < Control 0xc9: +/258/65535 [???] < Control 0xca: +/256/65535 [???] < Control 0xd6: +/256/65535 [???] < Control 0xdf: +/512/65535 [???] --- > Control 0x04: +/0/1 C [Restore Factory Defaults] > Control 0x06: +/0/1 C [Restore Factory Default Geometry] > Control 0x08: +/0/1 C [Restore Factory Default Color] > Control 0x0e: +/100/200 C [Image Lock Coarse (Clock)] > Control 0x10: +/255/255 C [Brightness] > Control 0x12: +/65/100 C [Contrast] > Control 0x14: +/11/12 C [Color Preset - User 1] > Control 0x16: +/255/255 C [Red maximum level] > Control 0x18: +/255/255 C [Green maximum level] > Control 0x1a: +/255/255 C [Blue maximum level] > Control 0x1e: +/0/1 C [Automatically adjust] > Control 0x20: +/174/322 C [Horizontal Position] > Control 0x30: +/24/49 C [Vertical Position] > Control 0x3e: +/16/63 C [Image Lock Fine (Clock Phase)] > Control 0x68: +/1/9 C [Language select - English] > Control 0xa8: +/1/1 [???] > Control 0xb4: +/1/1 [???] > Control 0xb6: +/3/3 [???] > Control 0xd6: +/1/4 [???] > Control 0xd7: +/0/1 [???] > Control 0xd8: +/0/1 [???] 64,65c42,43 < Identifier "DELL E176FP" < ModelName "DELL E176FP" --- > Identifier "DELL 1905FP" > ModelName "DELL 1905FP" 67c45 < # Monitor Manufactured week 45 of 2005 --- > # Monitor Manufactured week 3 of 2005 70c48,49 < DisplaySize 340 270 --- > Option "SyncOnGreen" "true" > DisplaySize 380 310 73,74c52,53 < Horizsync 31-80 < VertRefresh 56-75 --- > Horizsync 30-81 > VertRefresh 56-76
gddccontrol and Sony SDM-HS94P problems
The Sony SDM-HS94P is a 1280x1024 19" monitor from back in 2004.
sudo get-edid | parse-edid
This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
No EDID on bus 0
No EDID on bus 2
No EDID on bus 4
No EDID on bus 5
No EDID on bus 6
2 potential busses found: 1 3
Will scan through until the first EDID is found.
Pass a bus number as an option to this program to go only for that one.
128-byte EDID successfully retrieved from i2c bus 1
Looks like i2c was successful. Have a good day.
Checksum Correct
Section "Monitor"
Identifier "SDM-HS94P"
ModelName "SDM-HS94P"
VendorName "SNY"
# Monitor Manufactured week 44 of 2004
# EDID version 1.3
# Analog Display
DisplaySize 380 300
Gamma 2.20
Option "DPMS" "true"
Horizsync 28-81
VertRefresh 48-75
# Maximum pixel clock is 140MHz
#Not giving standard mode: 1280x1024, 60Hz
#Not giving standard mode: 1280x960, 60Hz
Modeline "Mode 0" 108.00 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync
EndSection
asking for a ddccontrol probe gives me:
sudo ddccontrol -c -d dev:/dev/i2c-1
ddccontrol version 0.4.2
Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su)
Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch)
This program comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of this program under the terms of the GNU General Public License.
Reading EDID and initializing DDC/CI at bus dev:/dev/i2c-1...
Invalid response, first byte is 0x51, should be 0x6e
0000: 51 83 f3 00 00 4f 14 da f9 7d eb fe 67 54 f9 21 | Q....O...}..gT.!
0010: 3a b1 fc d5 fc 47 c4 6a 2e ff 90 2c 92 10 6b dc | :....G.j...,..k.
0020: 06 39 af 6c 97 c5 ef f3 e8 9a 6e 12 f8 d7 49 e3 | .9.l......n...I.
0030: 04 5a 16 d6 d7 7e 3e 2c f6 1b 83 48 73 ff 7f b3 | .Z...~>,...Hs...
0040: 70 49 af | pI.
Invalid response, first byte is 0x51, should be 0x6e
0000: 51 83 f3 00 00 4f 14 da f9 7d eb fe 67 54 f9 21 | Q....O...}..gT.!
0010: 3a b1 fc d5 fc 47 c4 6a 2e ff 90 2c 92 10 6b dc | :....G.j...,..k.
0020: 06 39 af 6c 97 c5 ef f3 e8 9a 6e 12 f8 d7 49 e3 | .9.l......n...I.
0030: 04 5a 16 d6 d7 7e 3e 2c f6 1b 83 48 73 ff 7f b3 | .Z...~>,...Hs...
0040: 70 49 af | pI.
Invalid response, first byte is 0x51, should be 0x6e
0000: 51 83 f3 00 00 4f 14 da f9 7d eb fe 67 54 f9 21 | Q....O...}..gT.!
0010: 3a b1 fc d5 fc 47 c4 6a 2e ff 90 2c 92 10 6b dc | :....G.j...,..k.
0020: 06 39 af 6c 97 c5 ef f3 e8 9a 6e 12 f8 d7 49 e3 | .9.l......n...I.
0030: 04 5a 16 d6 d7 7e 3e 2c f6 1b 83 48 73 ff 7f b3 | .Z...~>,...Hs...
0040: 70 49 af | pI.
I/O warning : failed to load external entity "/usr/share/ddccontrol-db/monitor/SNY1B90.xml"
Document not parsed successfully.
EDID readings:
Plug and Play ID: SNY1B90 [VESA standard monitor]
Input type: Analog
=============================== WARNING ===============================
There is no support for your monitor in the database, but ddccontrol is
using a basic generic profile. Many controls will not be supported, and
some controls may not work as expected.
Please update ddccontrol-db, or, if you are already using the latest
version, please send the output of the following command to
ddccontrol-users@lists.sourceforge.net:
LANG= LC_ALL= ddccontrol -p -c -d
Thank you.
=============================== WARNING ===============================
Capabilities:
Invalid response, first byte is 0x51, should be 0x6e
0000: 51 83 f3 00 00 4f 14 da f9 7d eb fe 67 54 f9 21 | Q....O...}..gT.!
0010: 3a b1 fc d5 fc 47 c4 6a 2e ff 90 2c 92 10 6b dc | :....G.j...,..k.
0020: 06 39 af 6c 97 c5 ef f3 e8 9a 6e 12 f8 d7 49 e3 | .9.l......n...I.
0030: 04 5a 16 d6 d7 7e 3e 2c f6 1b 83 48 73 ff 7f b3 | .Z...~>,...Hs...
0040: 70 49 af | pI.
Invalid response, first byte is 0x51, should be 0x6e
0000: 51 83 f3 00 00 4f 14 da f9 7d eb fe 67 54 f9 21 | Q....O...}..gT.!
0010: 3a b1 fc d5 fc 47 c4 6a 2e ff 90 2c 92 10 6b dc | :....G.j...,..k.
0020: 06 39 af 6c 97 c5 ef f3 e8 9a 6e 12 f8 d7 49 e3 | .9.l......n...I.
0030: 04 5a 16 d6 d7 7e 3e 2c f6 1b 83 48 73 ff 7f b3 | .Z...~>,...Hs...
0040: 70 49 af | pI.
...
Capabilities read fail.
Controls (valid/current/max) [Description - Value name]:
Invalid response, first byte is 0x51, should be 0x6e
51 82 01 00 bc 4f 14 da f9 7d eb | Q....O...}.
Invalid response, first byte is 0x51, should be 0x6e
51 82 01 00 bc 4f 14 da f9 7d eb | Q....O...}.
...
So ddccontrol won't read the capabilities, gddccontrol displays a tab that only has the title of "zero", but I can do this manually to change the brightness and contrast:
(I'm specifying the specific device because I've got more than one monitor attached)
setting brightness to 60
sudo ddccontrol dev:/dev/i2c-1 -r 0x10 -w 60
setting contrast to 60
sudo ddccontrol dev:/dev/i2c-1 -r 0x12 -w 60
ddccontrol complains, but the monitor does respond. So at least I can make it work.
Writing 0x10, 0x3c(60)...
Invalid response, first byte is 0x51, should be 0x6e
51 82 01 10 ac 3c 94 da b9 7d eb | Q....<...}.
Invalid response, first byte is 0x51, should be 0x6e
51 82 01 10 ac 3c 94 da b9 7d eb | Q....<...}.
Invalid response, first byte is 0x51, should be 0x6e
51 82 01 10 ac 3c 94 da b9 7d eb | Q....<...}.
sudo get-edid | parse-edid
This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
No EDID on bus 0
No EDID on bus 2
No EDID on bus 4
No EDID on bus 5
No EDID on bus 6
2 potential busses found: 1 3
Will scan through until the first EDID is found.
Pass a bus number as an option to this program to go only for that one.
128-byte EDID successfully retrieved from i2c bus 1
Looks like i2c was successful. Have a good day.
Checksum Correct
Section "Monitor"
Identifier "SDM-HS94P"
ModelName "SDM-HS94P"
VendorName "SNY"
# Monitor Manufactured week 44 of 2004
# EDID version 1.3
# Analog Display
DisplaySize 380 300
Gamma 2.20
Option "DPMS" "true"
Horizsync 28-81
VertRefresh 48-75
# Maximum pixel clock is 140MHz
#Not giving standard mode: 1280x1024, 60Hz
#Not giving standard mode: 1280x960, 60Hz
Modeline "Mode 0" 108.00 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync
EndSection
asking for a ddccontrol probe gives me:
sudo ddccontrol -c -d dev:/dev/i2c-1
ddccontrol version 0.4.2
Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su)
Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch)
This program comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of this program under the terms of the GNU General Public License.
Reading EDID and initializing DDC/CI at bus dev:/dev/i2c-1...
Invalid response, first byte is 0x51, should be 0x6e
0000: 51 83 f3 00 00 4f 14 da f9 7d eb fe 67 54 f9 21 | Q....O...}..gT.!
0010: 3a b1 fc d5 fc 47 c4 6a 2e ff 90 2c 92 10 6b dc | :....G.j...,..k.
0020: 06 39 af 6c 97 c5 ef f3 e8 9a 6e 12 f8 d7 49 e3 | .9.l......n...I.
0030: 04 5a 16 d6 d7 7e 3e 2c f6 1b 83 48 73 ff 7f b3 | .Z...~>,...Hs...
0040: 70 49 af | pI.
Invalid response, first byte is 0x51, should be 0x6e
0000: 51 83 f3 00 00 4f 14 da f9 7d eb fe 67 54 f9 21 | Q....O...}..gT.!
0010: 3a b1 fc d5 fc 47 c4 6a 2e ff 90 2c 92 10 6b dc | :....G.j...,..k.
0020: 06 39 af 6c 97 c5 ef f3 e8 9a 6e 12 f8 d7 49 e3 | .9.l......n...I.
0030: 04 5a 16 d6 d7 7e 3e 2c f6 1b 83 48 73 ff 7f b3 | .Z...~>,...Hs...
0040: 70 49 af | pI.
Invalid response, first byte is 0x51, should be 0x6e
0000: 51 83 f3 00 00 4f 14 da f9 7d eb fe 67 54 f9 21 | Q....O...}..gT.!
0010: 3a b1 fc d5 fc 47 c4 6a 2e ff 90 2c 92 10 6b dc | :....G.j...,..k.
0020: 06 39 af 6c 97 c5 ef f3 e8 9a 6e 12 f8 d7 49 e3 | .9.l......n...I.
0030: 04 5a 16 d6 d7 7e 3e 2c f6 1b 83 48 73 ff 7f b3 | .Z...~>,...Hs...
0040: 70 49 af | pI.
I/O warning : failed to load external entity "/usr/share/ddccontrol-db/monitor/SNY1B90.xml"
Document not parsed successfully.
EDID readings:
Plug and Play ID: SNY1B90 [VESA standard monitor]
Input type: Analog
=============================== WARNING ===============================
There is no support for your monitor in the database, but ddccontrol is
using a basic generic profile. Many controls will not be supported, and
some controls may not work as expected.
Please update ddccontrol-db, or, if you are already using the latest
version, please send the output of the following command to
ddccontrol-users@lists.sourceforge.net:
LANG= LC_ALL= ddccontrol -p -c -d
Thank you.
=============================== WARNING ===============================
Capabilities:
Invalid response, first byte is 0x51, should be 0x6e
0000: 51 83 f3 00 00 4f 14 da f9 7d eb fe 67 54 f9 21 | Q....O...}..gT.!
0010: 3a b1 fc d5 fc 47 c4 6a 2e ff 90 2c 92 10 6b dc | :....G.j...,..k.
0020: 06 39 af 6c 97 c5 ef f3 e8 9a 6e 12 f8 d7 49 e3 | .9.l......n...I.
0030: 04 5a 16 d6 d7 7e 3e 2c f6 1b 83 48 73 ff 7f b3 | .Z...~>,...Hs...
0040: 70 49 af | pI.
Invalid response, first byte is 0x51, should be 0x6e
0000: 51 83 f3 00 00 4f 14 da f9 7d eb fe 67 54 f9 21 | Q....O...}..gT.!
0010: 3a b1 fc d5 fc 47 c4 6a 2e ff 90 2c 92 10 6b dc | :....G.j...,..k.
0020: 06 39 af 6c 97 c5 ef f3 e8 9a 6e 12 f8 d7 49 e3 | .9.l......n...I.
0030: 04 5a 16 d6 d7 7e 3e 2c f6 1b 83 48 73 ff 7f b3 | .Z...~>,...Hs...
0040: 70 49 af | pI.
...
Capabilities read fail.
Controls (valid/current/max) [Description - Value name]:
Invalid response, first byte is 0x51, should be 0x6e
51 82 01 00 bc 4f 14 da f9 7d eb | Q....O...}.
Invalid response, first byte is 0x51, should be 0x6e
51 82 01 00 bc 4f 14 da f9 7d eb | Q....O...}.
...
So ddccontrol won't read the capabilities, gddccontrol displays a tab that only has the title of "zero", but I can do this manually to change the brightness and contrast:
(I'm specifying the specific device because I've got more than one monitor attached)
setting brightness to 60
sudo ddccontrol dev:/dev/i2c-1 -r 0x10 -w 60
setting contrast to 60
sudo ddccontrol dev:/dev/i2c-1 -r 0x12 -w 60
ddccontrol complains, but the monitor does respond. So at least I can make it work.
Writing 0x10, 0x3c(60)...
Invalid response, first byte is 0x51, should be 0x6e
51 82 01 10 ac 3c 94 da b9 7d eb | Q....<...}.
Invalid response, first byte is 0x51, should be 0x6e
51 82 01 10 ac 3c 94 da b9 7d eb | Q....<...}.
Invalid response, first byte is 0x51, should be 0x6e
51 82 01 10 ac 3c 94 da b9 7d eb | Q....<...}.
Saturday, April 8, 2017
acer v173 works with ddccontrol
interestingly, if I drag the gddccontrol window to the other monitor, it will switch to controlling the monitor that it isn't currently on.
but when I invoke ddccontrol to specify a specific i2c device, I learned I have to use dev: in front of it like this: "dev:/dev/i2c-1"
so for my acer v173:
sudo ddccontrol -c -d /dev/i2c-1
ddccontrol version 0.4.2
Reading EDID and initializing DDC/CI at bus /dev/i2c-1...
Invalid filename (/dev/i2c-1).
DDC/CI at /dev/i2c-1 is unusable (-3).
If your graphics card need it, please check all the required kernel modules are loaded (i2c-dev, and your framebuffer driver).
===================================================
it doesn't like the device name:
but if I use the dev: syntax, no problemo
but when I invoke ddccontrol to specify a specific i2c device, I learned I have to use dev: in front of it like this: "dev:/dev/i2c-1"
so for my acer v173:
sudo ddccontrol -c -d /dev/i2c-1
ddccontrol version 0.4.2
Reading EDID and initializing DDC/CI at bus /dev/i2c-1...
Invalid filename (/dev/i2c-1).
DDC/CI at /dev/i2c-1 is unusable (-3).
If your graphics card need it, please check all the required kernel modules are loaded (i2c-dev, and your framebuffer driver).
===================================================
it doesn't like the device name:
but if I use the dev: syntax, no problemo
sudo ddccontrol -c -d dev:/dev/i2c-1 ddccontrol version 0.4.2 Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su) Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch) This program comes with ABSOLUTELY NO WARRANTY. You may redistribute copies of this program under the terms of the GNU General Public License. Reading EDID and initializing DDC/CI at bus dev:/dev/i2c-1... I/O warning : failed to load external entity "/usr/share/ddccontrol-db/monitor/ACR0019.xml" Document not parsed successfully. EDID readings: Plug and Play ID: ACR0019 [VESA standard monitor] Input type: Analog =============================== WARNING =============================== There is no support for your monitor in the database, but ddccontrol is using a basic generic profile. Many controls will not be supported, and some controls may not work as expected. Please update ddccontrol-db, or, if you are already using the latest version, please send the output of the following command to ddccontrol-users@lists.sourceforge.net: LANG= LC_ALL= ddccontrol -p -c -d Thank you. =============================== WARNING =============================== Capabilities: Raw output: (prot(monitor)type(LCD)model(V173)cmds(01 02 03 07 0C E3 F3)vcp(04 05 06 08 0E 10 12 14(05 08 0B) 16 18 1A 1E 20 30 3E AC AE B2 B6 C6 C8 C9 DF )mswhql(1)asset_eep(40)mccs_ver(2.0)) Parsed output: VCP: 04 05 06 08 0e 10 12 14 16 18 1a 1e 20 30 3e ac ae b2 b6 c6 c8 c9 df Type: Unknown Controls (valid/current/max) [Description - Value name]: Control 0x02: +/1/2 [???] Control 0x04: +/0/1 C [Restore Factory Defaults] Control 0x05: +/0/1 C [Restore Brightness and Contrast] Control 0x06: +/0/1 C [Restore Factory Default Geometry] Control 0x08: +/0/1 C [Restore Factory Default Color] Control 0x0b: +/100/0 [???] Control 0x0c: +/35/63 [???] Control 0x0e: +/50/100 C [Image Lock Coarse (Clock)] Control 0x10: +/62/100 C [Brightness] Control 0x12: +/56/100 C [Contrast] Control 0x14: +/5/11 C [???] Control 0x16: +/80/100 C [Red maximum level] Control 0x18: +/80/100 C [Green maximum level] Control 0x1a: +/80/100 C [Blue maximum level] Control 0x1e: +/0/1 C [Automatically adjust] Control 0x1f: +/1/1 [???] Control 0x20: +/50/100 C [Horizontal Position] Control 0x30: +/34/62 C [Vertical Position] Invalid response, corrupted data - xor is 0xa9, length 0x08 6e 88 02 01 31 31 00 00 3e 00 22 | n...11..>." Control 0x3e: +/54/63 C [Image Lock Fine (Clock Phase)] Control 0x52: +/255/65535 [???] Control 0x60: +/1/1 [???] Control 0x6c: +/50/100 [???] Control 0x6e: +/50/100 [???] Control 0x70: +/50/100 [???] Invalid response, length is 9, should be 8 at most Invalid response, length is 9, should be 8 at most Invalid response, length is 9, should be 8 at most Control 0xac: +/64200/0 C [???] Control 0xae: +/6030/65535 C [???] Control 0xb2: +/1/1 C [???] Control 0xb6: +/3/5 C [???] Control 0xc0: +/42654/65535 [???] Control 0xc6: +/120/255 C [???] Control 0xc8: +/9/0 C [???] Control 0xc9: +/2/65535 C [???] Control 0xca: +/1/2 [???] Control 0xcc: +/2/7 [???] Control 0xd6: +/1/4 [???] Control 0xdf: +/512/65535 C [???]
ddccontrol and different monitors
Not every monitor supports ddc, so I thought I'd try a few:
An EIZO CE240W doesn't support ddc at all...
My Hanns-G HH241 works fine.
==========================================================
An EIZO CE240W doesn't support ddc at all...
My Hanns-G HH241 works fine.
==========================================================
A Sun Microsystems 24.1" LCD v4 works fine and gives these results: sudo ddccontrol -p ddccontrol version 0.4.2 Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su) Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch) This program comes with ABSOLUTELY NO WARRANTY. You may redistribute copies of this program under the terms of the GNU General Public License. Probing for available monitors...I/O warning : failed to load external entity "/usr/share/ddccontrol-db/monitor/SUN059A.xml" Document not parsed successfully. .... Detected monitors : - Device: dev:/dev/i2c-3 DDC/CI supported: Yes Monitor Name: VESA standard monitor Input type: Digital (Automatically selected) Reading EDID and initializing DDC/CI at bus dev:/dev/i2c-3... I/O warning : failed to load external entity "/usr/share/ddccontrol-db/monitor/SUN059A.xml" Document not parsed successfully. EDID readings: Plug and Play ID: SUN059A [VESA standard monitor] Input type: Digital =============================== WARNING =============================== There is no support for your monitor in the database, but ddccontrol is using a basic generic profile. Many controls will not be supported, and some controls may not work as expected. Please update ddccontrol-db, or, if you are already using the latest version, please send the output of the following command to ddccontrol-users@lists.sourceforge.net: LANG= LC_ALL= ddccontrol -p -c -d Thank you. =============================== WARNING =============================== = VESA standard monitor > Color settings > Brightness and Contrast > id=brightness, name=Brightness, address=0x10, delay=-1ms, type=0 supported, value=68, maximum=100 > id=contrast, name=Contrast, address=0x12, delay=-1ms, type=0 supported, value=50, maximum=100 > Color maximum level > id=red, name=Red maximum level, address=0x16, delay=-1ms, type=0 supported, value=100, maximum=100 > id=green, name=Green maximum level, address=0x18, delay=-1ms, type=0 supported, value=100, maximum=100 > id=blue, name=Blue maximum level, address=0x1a, delay=-1ms, type=0 supported, value=100, maximum=100 > Color minimum level > id=redblack, name=Red minimum level, address=0x6c, delay=-1ms, type=0 supported, value=123, maximum=255 > id=greenblack, name=Green minimum level, address=0x6e, delay=-1ms, type=0 supported, value=123, maximum=255 > id=blueblack, name=Blue minimum level, address=0x70, delay=-1ms, type=0 supported, value=123, maximum=255 > Others > Restore defaults > id=defaults, name=Restore Factory Defaults, address=0x4, delay=2000ms, type=1 Possible values: > id=default - name=Restore Factory Defaults, value=1 supported, value=0, maximum=65535 > id=defaultluma, name=Restore Brightness and Contrast, address=0x5, delay=2000ms, type=1 Possible values: > id=default - name=Restore Brightness and Contrast, value=1 supported, value=0, maximum=65535 > id=defaultcolor, name=Restore Factory Default Color, address=0x8, delay=2000ms, type=1 Possible values: > id=default - name=Restore Factory Default Color, value=1 supported, value=0, maximum=65535 > Input settings > id=inputsource, name=Input Source Select, address=0x60, delay=-1ms, type=2 Possible values: > id=analog - name=Analog, value=1 > id=digital - name=Digital, value=3 supported, value=3, maximum=3 > Power control > id=dpms, name=DPMS Control, address=0xd6, delay=-1ms, type=2 Possible values: > id=on - name=On, value=1 > id=standby - name=Standby, value=4 supported, value=1, maximum=5 ================================================== and running sudo ddccontrol -p -c -d gives this: ddccontrol version 0.4.2 Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su) Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch) This program comes with ABSOLUTELY NO WARRANTY. You may redistribute copies of this program under the terms of the GNU General Public License. Probing for available monitors...I/O warning : failed to load external entity "/usr/share/ddccontrol-db/monitor/SUN059A.xml" Document not parsed successfully. .... Detected monitors : - Device: dev:/dev/i2c-3 DDC/CI supported: Yes Monitor Name: VESA standard monitor Input type: Digital (Automatically selected) Reading EDID and initializing DDC/CI at bus dev:/dev/i2c-3... I/O warning : failed to load external entity "/usr/share/ddccontrol-db/monitor/SUN059A.xml" Document not parsed successfully. EDID readings: Plug and Play ID: SUN059A [VESA standard monitor] Input type: Digital =============================== WARNING =============================== There is no support for your monitor in the database, but ddccontrol is using a basic generic profile. Many controls will not be supported, and some controls may not work as expected. Please update ddccontrol-db, or, if you are already using the latest version, please send the output of the following command to ddccontrol-users@lists.sourceforge.net: LANG= LC_ALL= ddccontrol -p -c -d Thank you. =============================== WARNING =============================== Capabilities: Raw output: (prot(monitor)type(LCD)model(Sun)cmde(01 02 03 07 0C E3 F3)vcp(02 04 05 08 0B 0C 10 12 14(01 05 08 0B) 16 18 1A 52 60(01 03) 6C 6E 70 AC AE B2 B6 C6 C8 C9 CC(00 02 03 04 05 10) D6(01 04) DF)mswhql(1)asset_eep(40)mccs_ver(2.0)) Parsed output: VCP: 02 04 05 08 0b 0c 10 12 14 16 18 1a 52 60 6c 6e 70 ac ae b2 b6 c6 c8 c9 cc d6 df Type: Unknown Controls (valid/current/max) [Description - Value name]: Control 0x02: +/2/2 C [???] Control 0x04: +/0/65535 C [Restore Factory Defaults] Control 0x05: +/0/65535 C [Restore Brightness and Contrast] Invalid response, first byte is 0xbe, should be 0x6e be 6e 80 be 6e 80 be 6e 80 be 6e | .n..n..n..n Invalid response, first byte is 0x80, should be 0x6e 80 be 6e 80 be 6e 80 be 6e 80 be | ..n..n..n.. Control 0x08: +/0/65535 C [Restore Factory Default Color] Control 0x0b: +/3000/12288 C [???] Control 0x0c: +/1/6 C [???] Invalid response, first byte is 0xbe, should be 0x6e be 6e 80 be 6e 80 be 6e 80 be 6e | .n..n..n..n Invalid response, first byte is 0x80, should be 0x6e 80 be 6e 80 be 6e 80 be 6e 80 be | ..n..n..n.. Control 0x10: +/68/100 C [Brightness] Control 0x12: +/50/100 C [Contrast] Control 0x14: +/8/11 C [???] Control 0x16: +/100/100 C [Red maximum level] Control 0x18: +/100/100 C [Green maximum level] Control 0x1a: +/100/100 C [Blue maximum level] Invalid response, first byte is 0xbe, should be 0x6e be 6e 80 be 6e 80 be 6e 80 be 6e | .n..n..n..n Invalid response, first byte is 0x80, should be 0x6e 80 be 6e 80 be 6e 80 be 6e 80 be | ..n..n..n.. Invalid response, first byte is 0xbe, should be 0x6e be 6e 80 be 6e 80 be 6e 80 be 6e | .n..n..n..n Invalid response, first byte is 0x80, should be 0x6e 80 be 6e 80 be 6e 80 be 6e 80 be | ..n..n..n.. Invalid response, first byte is 0xbe, should be 0x6e be 6e 80 be 6e 80 be 6e 80 be 6e | .n..n..n..n Invalid response, first byte is 0x80, should be 0x6e 80 be 6e 80 be 6e 80 be 6e 80 be | ..n..n..n.. Invalid response, first byte is 0xbe, should be 0x6e be 6e 80 be 6e 80 be 6e 80 be 6e | .n..n..n..n Invalid response, first byte is 0x80, should be 0x6e 80 be 6e 80 be 6e 80 be 6e 80 be | ..n..n..n.. Invalid response, first byte is 0xbe, should be 0x6e be 6e 80 be 6e 80 be 6e 80 be 6e | .n..n..n..n Invalid response, first byte is 0x80, should be 0x6e 80 be 6e 80 be 6e 80 be 6e 80 be | ..n..n..n.. Control 0x52: +/72/255 C [???] Control 0x60: +/3/3 C [Input Source Select - Digital] Control 0x6c: +/123/255 C [Red minimum level] Control 0x6e: +/123/255 C [Green minimum level] Control 0x70: +/123/255 C [Blue minimum level] Invalid response, length is 9, should be 8 at most Invalid response, length is 9, should be 8 at most Invalid response, length is 9, should be 8 at most Control 0xac: +/73/65535 C [???] Control 0xae: +/59/65535 C [???] Control 0xb2: +/1/1 C [???] Control 0xb6: +/3/5 C [???] Control 0xc6: +/90/255 C [???] Control 0xc8: +/8969/65535 C [???] Control 0xc9: +/512/255 C [???] Control 0xca: +/1/2 [???] Control 0xcc: +/2/9 C [???] Control 0xd6: +/1/5 C [DPMS Control - On] Control 0xdf: +/512/65535 C [???] Control 0xe5: +/19202/2 [???] =========================================================================== A dell 2408wfp works fine and gives this: sudo get-edid | parse-edid This is read-edid version 3.0.2. Prepare for some fun. Attempting to use i2c interface No EDID on bus 0 No EDID on bus 1 No EDID on bus 2 No EDID on bus 4 No EDID on bus 5 No EDID on bus 6 1 potential busses found: 3 128-byte EDID successfully retrieved from i2c bus 3 Looks like i2c was successful. Have a good day. Checksum Correct Section "Monitor" Identifier "DELL 2408WFP" ModelName "DELL 2408WFP" VendorName "DEL" # Monitor Manufactured week 28 of 2008 # EDID version 1.3 # Digital Display DisplaySize 520 320 Gamma 2.20 Option "DPMS" "true" Horizsync 30-83 VertRefresh 56-76 # Maximum pixel clock is 170MHz #Not giving standard mode: 1280x1024, 60Hz #Not giving standard mode: 1600x1200, 60Hz #Not giving standard mode: 1152x864, 75Hz Modeline "Mode 0" 154.00 1920 1968 2000 2080 1200 1203 1209 1235 +hsync -vsync EndSection sudo ddccontrol -p -c -d ddccontrol version 0.4.2 Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su) Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch) This program comes with ABSOLUTELY NO WARRANTY. You may redistribute copies of this program under the terms of the GNU General Public License. Probing for available monitors...I/O warning : failed to load external entity "/usr/share/ddccontrol-db/monitor/DELA02A.xml" Document not parsed successfully. .... Detected monitors : - Device: dev:/dev/i2c-3 DDC/CI supported: Yes Monitor Name: VESA standard monitor Input type: Digital (Automatically selected) Reading EDID and initializing DDC/CI at bus dev:/dev/i2c-3... I/O warning : failed to load external entity "/usr/share/ddccontrol-db/monitor/DELA02A.xml" Document not parsed successfully. EDID readings: Plug and Play ID: DELA02A [VESA standard monitor] Input type: Digital =============================== WARNING =============================== There is no support for your monitor in the database, but ddccontrol is using a basic generic profile. Many controls will not be supported, and some controls may not work as expected. Please update ddccontrol-db, or, if you are already using the latest version, please send the output of the following command to ddccontrol-users@lists.sourceforge.net: LANG= LC_ALL= ddccontrol -p -c -d Thank you. =============================== WARNING =============================== Capabilities: Raw output: (vcp(02 04 05 06 08 10 12 14(01 05 08 0B 0C) 16 18 1A 52 60(01 03 04 05 07 0C) AC AE B6 C6 C8 C9 D6(01 03 04 05) DC(00 02 03 04 05 06) DF) type(LCD) mccs_ver(2.0) asset_eep(32) mswhql(1)) Parsed output: VCP: 02 04 05 06 08 10 12 14 16 18 1a 52 60 ac ae b6 c6 c8 c9 d6 dc df Type: Unknown Controls (valid/current/max) [Description - Value name]: Control 0x02: +/1/2 C [???] Control 0x04: +/0/1 C [Restore Factory Defaults] Control 0x05: +/0/1 C [Restore Brightness and Contrast] Control 0x06: +/0/1 C [Restore Factory Default Geometry] Control 0x08: +/0/1 C [Restore Factory Default Color] Control 0x10: +/70/100 C [Brightness] Control 0x12: +/39/100 C [Contrast] Control 0x14: +/5/12 C [???] Control 0x16: +/100/100 C [Red maximum level] Control 0x18: +/100/100 C [Green maximum level] Control 0x1a: +/100/100 C [Blue maximum level] Control 0x52: +/96/255 C [???] Control 0x60: +/4/12 C [Input Source Select] Control 0x68: +/1/2 [???] Control 0x8a: +/256/65535 [???] Control 0x8c: +/10/65535 [???] Control 0xac: +/8564/1 C [???] Control 0xae: +/6000/65535 C [???] Control 0xb6: +/3/65535 C [???] Control 0xc6: +/17868/65535 C [???] Control 0xc8: +/32770/118 C [???] Control 0xc9: +/1/65535 C [???] Control 0xd6: +/1/5 C [DPMS Control - On] Control 0xdc: +/0/6 C [???] Control 0xdf: +/512/65535 C [???] Control 0xff: +/0/65535 [???] =============================================================================
Got gddccontrol working for the first time
Yay! I got gddccontrol working with ubuntu 16.04 and my hanns-g 24 inch monitor.
ddccontrol or gddcontrol seems to need sudo privileges to work.
Installing the ddccontrol and gddccontrol:
sudo apt-get install ddccontrol
sudo apt-get install gddccontrol
I thought I'd install the read-edid as well:
sudo apt-get install read-edid
sudo get-edid | parse-edid
running sudo gddccontrol gives me:
running sudo ddccontrol -p
ddccontrol or gddcontrol seems to need sudo privileges to work.
Installing the ddccontrol and gddccontrol:
sudo apt-get install ddccontrol
sudo apt-get install gddccontrol
I thought I'd install the read-edid as well:
sudo apt-get install read-edid
sudo get-edid | parse-edid
running sudo gddccontrol gives me:
running sudo ddccontrol -p
ddccontrol version 0.4.2 Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su) Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch) This program comes with ABSOLUTELY NO WARRANTY. You may redistribute copies of this program under the terms of the GNU General Public License. Probing for available monitors.....I/O warning : failed to load external entity "/usr/share/ddccontrol-db/monitor/HSD2275.xml" Document not parsed successfully. I/O warning : failed to load external entity "/usr/share/ddccontrol-db/monitor/HSDlcd.xml" Document not parsed successfully. .. Detected monitors : - Device: dev:/dev/i2c-1 DDC/CI supported: Yes Monitor Name: VESA standard monitor Input type: Analog (Automatically selected) Reading EDID and initializing DDC/CI at bus dev:/dev/i2c-1... I/O warning : failed to load external entity "/usr/share/ddccontrol-db/monitor/HSD2275.xml" Document not parsed successfully. I/O warning : failed to load external entity "/usr/share/ddccontrol-db/monitor/HSDlcd.xml" Document not parsed successfully. EDID readings: Plug and Play ID: HSD2275 [VESA standard monitor] Input type: Analog =============================== WARNING =============================== There is no support for your monitor in the database, but ddccontrol is using a basic generic profile. Many controls will not be supported, and some controls may not work as expected. Please update ddccontrol-db, or, if you are already using the latest version, please send the output of the following command to ddccontrol-users@lists.sourceforge.net: LANG= LC_ALL= ddccontrol -p -c -d Thank you. =============================== WARNING =============================== = VESA standard monitor > Color settings > Brightness and Contrast > id=brightness, name=Brightness, address=0x10, delay=-1ms, type=0 supported, value=56, maximum=100 > id=contrast, name=Contrast, address=0x12, delay=-1ms, type=0 supported, value=77, maximum=100 > Color maximum level > id=red, name=Red maximum level, address=0x16, delay=-1ms, type=0 supported, value=86, maximum=100 > id=green, name=Green maximum level, address=0x18, delay=-1ms, type=0 supported, value=87, maximum=100 > id=blue, name=Blue maximum level, address=0x1a, delay=-1ms, type=0 supported, value=80, maximum=100 > Color minimum level > id=redblack, name=Red minimum level, address=0x6c, delay=-1ms, type=0 supported, value=128, maximum=255 > id=greenblack, name=Green minimum level, address=0x6e, delay=-1ms, type=0 supported, value=128, maximum=255 > id=blueblack, name=Blue minimum level, address=0x70, delay=-1ms, type=0 supported, value=128, maximum=255 > Position and size > Position > id=hpos, name=Horizontal Position, address=0x20, delay=-1ms, type=0 supported, value=50, maximum=100 > id=vpos, name=Vertical Position, address=0x30, delay=-1ms, type=0 supported, value=50, maximum=100 > Automatic adjustments > id=auto, name=Automatically adjust, address=0x1e, delay=1000ms, type=1 Possible values: > id=pos - name=H/V Position, value=1 supported, value=0, maximum=1
Friday, April 7, 2017
Mr. Do!
One of my all time favorites is Mr. Do. I'm not terribly good at it, probably because I always thought in conceptual terms of running Mr. Do along the "invisible grid".
I was amazed at this master playing Mr. Do! for 2.5 hours.
And how to get 255 lives. How do people figure this stuff out?
how to trigger the diamond:
http://www.donhodges.com/mr_do!_diamond_trigger.htm
and some tips on how to play:
http://cubeman.org/mrdotip.txt
I never noticed that the levels have the number as part of their design, probably because I never got past the first few levels.
http://www.eurogamer.net/articles/2014-08-03-somewhere-in-the-multiverse-exists-a-timeline-where-mr-do-is-as-iconic-as-mario
I was amazed at this master playing Mr. Do! for 2.5 hours.
And how to get 255 lives. How do people figure this stuff out?
how to trigger the diamond:
http://www.donhodges.com/mr_do!_diamond_trigger.htm
and some tips on how to play:
http://cubeman.org/mrdotip.txt
I never noticed that the levels have the number as part of their design, probably because I never got past the first few levels.
http://www.eurogamer.net/articles/2014-08-03-somewhere-in-the-multiverse-exists-a-timeline-where-mr-do-is-as-iconic-as-mario
Tuesday, April 4, 2017
Calcuscribe LCD
I thought I'd have a look at the LCD panel of the calcuscribe.
The LCD front:
The LCD back, with a bunch of SEC KS0086 lcd driver chips.
Closeup of a KS0086 chip.
The Tianma TM48064BQ board (480x64).
There's a small variable resistor on the LCD board to adjust the contrast but it doesn't seem to clear up the mess on the display, just making it darker or lighter.
The LCD front:
The LCD back, with a bunch of SEC KS0086 lcd driver chips.
Closeup of a KS0086 chip.
The Tianma TM48064BQ board (480x64).
There's a small variable resistor on the LCD board to adjust the contrast but it doesn't seem to clear up the mess on the display, just making it darker or lighter.
Saturday, April 1, 2017
Oric and the blank space at the left side
I was looking at some videos for the Oric and I noticed that there was a 2 character blank space on the left side of the display. So I did some reading and it turns out that the Oric has a very unique system for choosing colors, using "Serial Attributes" that are stored in screen memory.
So why are there 2 blank spaces? Because you use those two character spots to choose the foreground and background colors.
You can even switch from text to hi-res graphics and back again "on the fly" which is quite clever.
It had 240x200 graphics and each byte in hi-res mode would store 6 pixels. The most significant bit would invert the colors.
Here's some pages that tell you all about the oric's graphic display:
http://www.osdk.org/www_osdk/index.php?page=articles&ref=ART3#title3
http://oric.free.fr/programming.html
http://home.btconnect.com/geffers/files/contents.htm
and since the Oric is 6502 based, why not see what the code will display on an Atari?
So why are there 2 blank spaces? Because you use those two character spots to choose the foreground and background colors.
You can even switch from text to hi-res graphics and back again "on the fly" which is quite clever.
It had 240x200 graphics and each byte in hi-res mode would store 6 pixels. The most significant bit would invert the colors.
Here's some pages that tell you all about the oric's graphic display:
http://www.osdk.org/www_osdk/index.php?page=articles&ref=ART3#title3
http://oric.free.fr/programming.html
http://home.btconnect.com/geffers/files/contents.htm
and since the Oric is 6502 based, why not see what the code will display on an Atari?
Subscribe to:
Posts (Atom)