[argyllcms] color calibrating "ws2812b-led-panel" results in errors

  • From: Martin Sperl <argyllcms@xxxxxxxxxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Sat, 26 Sep 2015 21:40:40 +0200

Hi!

To generate some gamma curves for a ws2812b led panel I thought I could use
dispcal to get the corresponding values.

So I have placed my Spyder 3 on top of the LED Panel (in an almost dark room)
and ran:
./dispcal -v 9 -q l -y l -C ./transmit.sh ws2812b
with the downloadable binaries provided for linux
where transmit.sh will set up the RGB values on the ws2812b display
(and print out the RGB values to stderr).

It ran like this:
XRandR 1.2 is faulty - falling back to older extensions
Setting up the instrument
Instrument Type: Datacolor Spyder3
Serial Number: 07049007
Hardware version: 0x0437
Place instrument on test window.
Hit Esc or Q to give up, any other key to continue:
dispcal: Warning - Unable to access to VideoLUTs so can't be sure colors are
native
Display type is 'l'
Target white = native white point
Target white brightness = native brightness
Target black brightness = native brightness
Target advertised gamma = 2.400000

Display adjustment menu:
Press 1 .. 7
1) Black level (CRT: Offset/Brightness)
2) White point (Color temperature, R,G,B, Gain/Contrast)
3) White level (CRT: Gain/Contrast, LCD: Brightness/Backlight)
4) Black point (R,G,B, Offset/Brightness)
5) Check all
6) Measure and set ambient for viewing condition adjustment
7) Continue on to calibration
8) Exit

TYPE 5

Doing check measurements
R=0 G=0 B=0
R=128 G=128 B=128
R=255 G=255 B=255
Black = XYZ 0.0589 0.0314 0.0293
Grey = XYZ 7978.773 8730.852 12012.539
White = XYZ 7151.499 16807.628 0.000
R=2 G=2 B=2
1% = XYZ 31.082 27.331 70.759

Current Brightness = 16807.63
Target 50% Level = 3184.450, Current = 8730.852, error = 33.0%
Target Near Black = 168.0763, Current = inf, error = inf%
Current white = x 0.2985, y 0.7015, VDT 0K DE 2K nan
Target black = x 0.2985, y 0.7015, Current = x 0.2406, y 0.2116, error =
44.44 DE

Press 1 .. 7
1) Black level (CRT: Offset/Brightness)
2) White point (Color temperature, R,G,B, Gain/Contrast)
3) White level (CRT: Gain/Contrast, LCD: Brightness/Backlight)
4) Black point (R,G,B, Offset/Brightness)
5) Check all
6) Measure and set ambient for viewing condition adjustment
7) Continue on to calibration
8) Exit

TYPE 7

Commencing display calibration
patch 1 of 9R=0 G=0 B=0
patch 2 of 9R=255 G=0 B=0
patch 3 of 9R=255 G=255 B=255
patch 4 of 9R=0 G=0 B=0
patch 5 of 9R=0 G=255 B=0
patch 6 of 9R=0 G=0 B=0
patch 7 of 9R=0 G=0 B=255
patch 8 of 9R=255 G=255 B=255
patch 9 of 9R=0 G=0 B=0

Meas 0 XYZ = 0.058303 0.031665 0.029405
Meas 1 XYZ = 10627.089099 4548.469859 285.316063
Meas 2 XYZ = 7121.542669 16719.041415 0.000000
Meas 3 XYZ = 0.022448 0.036867 0.032258
Meas 4 XYZ = 2482.102803 11273.884107 2579.110606
Meas 5 XYZ = 0.057702 0.031011 0.028653
Meas 6 XYZ = 7958.327568 2584.890641 45391.311842
Meas 7 XYZ = 7130.328336 16697.612864 0.000000
Meas 8 XYZ = 0.021962 0.036092 0.031835
Black = XYZ 0.0401 0.0339 0.0305
Red = XYZ 10627.089 4548.470 285.316
Green = XYZ 2482.103 11273.884 2579.111
Blue = XYZ 7958.328 2584.891 45391.312
White = XYZ 7125.936 16708.327 0.000
Automatic black point hue correction level = 0.78
patch 1 of 48R=0 G=0 B=0
patch 2 of 48R=0 G=0 B=0
patch 3 of 48R=0 G=0 B=0
patch 4 of 48R=0 G=0 B=0
patch 5 of 48R=5 G=0 B=0
patch 6 of 48R=0 G=5 B=0
patch 7 of 48R=0 G=0 B=5
patch 8 of 48R=5 G=5 B=5
patch 9 of 48R=17 G=0 B=0
patch 10 of 48R=0 G=17 B=0
patch 11 of 48R=0 G=0 B=17
patch 12 of 48R=17 G=17 B=17
patch 13 of 48R=32 G=0 B=0
patch 14 of 48R=0 G=32 B=0
patch 15 of 48R=0 G=0 B=32
patch 16 of 48R=32 G=32 B=32
patch 17 of 48R=51 G=0 B=0
patch 18 of 48R=0 G=51 B=0
patch 19 of 48R=0 G=0 B=51
patch 20 of 48R=51 G=51 B=51
patch 21 of 48R=72 G=0 B=0
patch 22 of 48R=0 G=72 B=0
patch 23 of 48R=0 G=0 B=72
patch 24 of 48R=72 G=72 B=72
patch 25 of 48R=97 G=0 B=0
patch 26 of 48R=0 G=97 B=0
patch 27 of 48R=0 G=0 B=97
patch 28 of 48R=97 G=97 B=97
patch 29 of 48R=124 G=0 B=0
patch 30 of 48R=0 G=124 B=0
patch 31 of 48R=0 G=0 B=124
patch 32 of 48R=124 G=124 B=124
patch 33 of 48R=153 G=0 B=0
patch 34 of 48R=0 G=153 B=0
patch 35 of 48R=0 G=0 B=153
patch 36 of 48R=153 G=153 B=153
patch 37 of 48R=185 G=0 B=0
patch 38 of 48R=0 G=185 B=0
patch 39 of 48R=0 G=0 B=185
patch 40 of 48R=185 G=185 B=185
patch 41 of 48R=219 G=0 B=0
patch 42 of 48R=0 G=219 B=0
patch 43 of 48R=0 G=0 B=219
patch 44 of 48R=219 G=219 B=219
patch 45 of 48R=255 G=0 B=0
patch 46 of 48R=0 G=255 B=0
patch 47 of 48R=0 G=0 B=255
patch 48 of 48R=255 G=255 B=255

dispcal: Warning - Model conjgrad failed, residual error = nan

Initial native brightness target = 16708.327139 cd/m^2
Target white value is XYZ 7125.935502 16708.327139 0.000000 [xy 0.298979
0.701021]
Adjusted target black XYZ 0.0202 0.0339 -nan, Lab 0.002 0.003 -inf
Target black after min adjust: XYZ 0.0401 0.0674 -nan, Lab 0.004 0.006 -nan
Gamma curve input offset = 0.000000, output offset = 0.000004, power = 2.400025
Total Iteration 2, Final Samples = 32 Final Repeat threshold = 0.900000
init_csamp_txyz:
0: target XYZ 0.0345 0.0674 -nan, Lab 0.004 0.003 -nan
1: target XYZ 0.2512 0.5764 -nan, Lab 0.031 0.003 -nan
2: target XYZ 3.1422 7.3563 -nan, Lab 0.398 0.003 -nan
3: target XYZ 14.7821 34.6501 -nan, Lab 1.873 0.002 -nan
4: target XYZ 44.5503 104.4500 -nan, Lab 5.647 0.002 -nan
5: target XYZ 104.9084 245.9720 -nan, Lab 12.430 0.001 -nan
6: target XYZ 211.2530 495.3188 -nan, Lab 19.901 0.001 -nan
7: target XYZ 381.8133 895.2344 -nan, Lab 27.731 0.001 -nan
8: target XYZ 637.5686 1494.9100 -nan, Lab 35.882 0.001 -nan
9: target XYZ 1002.1808 2349.8256 -nan, Lab 44.324 0.000 -nan
10: target XYZ 1501.9370 3521.6167 -nan, Lab 53.034 0.000 -nan
11: target XYZ 2165.7000 5077.9579 -nan, Lab 61.991 0.000 -nan
12: target XYZ 3024.8653 7092.4623 -nan, Lab 71.179 0.000 -nan
13: target XYZ 4113.3224 9644.5910 -nan, Lab 80.585 0.000 -nan
14: target XYZ 5467.4201 12819.5721 -nan, Lab 90.195 0.000 -nan
15: target XYZ 7125.9355 16708.3271 -nan, Lab 100.000 0.000 -nan
Creating initial calibration curves...
dispcal: Error - Mcv max - min 0.000000e+00 too small

I guess the display is a bit too bright and triggers unexpected
code-paths/errors.

Any ideas?

Thanks,
Martin

P.s: I am now falling back to simple spotread loops over rgb to get my values...


Other related posts: