Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Can't create colorimeter correction && no longer recognize all the instrument after inserting the third instrument #304

Open
mylovesaber opened this issue Nov 17, 2023 · 7 comments

Comments

@mylovesaber
Copy link

instrument:

  • i1studio
  • spyder X
  • i1 display plus HL(new version of i1 display pro plus published by xrite a few months ago on 2023)

Issue 1

When I finished measurement for i1studio. I didn't see any ccmx file generated. Where is it going?

Log from startup to the latest(including I forgot to change i1studio from calculate state to measure state by mistake):

source ./.venv/bin/activate; \
	displaycal
Acquired lock file: <DisplayCAL.main.AppLock object at 0x102466a90>
displaycal 3.9.11 2023-11-06T16:24:28Z
Mac OS X 14.1.1 arm64
Python 3.9.6 (default, Aug 11 2023, 19:44:49)
[Clang 15.0.0 (clang-1500.0.40.1)]
CA file /Users/user/code/github-project/displaycal-py3/.venv/lib/python3.9/site-packages/certifi/cacert.pem
Faulthandler
wxPython 4.2.1 osx-cocoa (phoenix) wxWidgets 3.2.2.1
Encoding: utf-8
File system encoding: utf-8
Loading /Users/user/Library/Preferences/DisplayCAL/DisplayCAL.ini
listening
writing to lock file: port: 15411
/Users/user/code/github-project/displaycal-py3/.venv/lib/python3.9/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020
  warnings.warn(
Starting up...
Audio module: pyglet 2.0.9
Enumerating display devices and communication ports...
/Users/user/Library/Argyll_V3.0.2/bin
ArgyllCMS 3.0.2
Argyll has virtual display support
...ok.
Initializing GUI...

input_value_clipping_bmp should have been hidden
output_profile_ctrl should have been hidden
...ok.
Ready.
Setting up scripting host at 127.0.0.1:15411
Check for application update...
DisplayCAL is up-to-date.
ArgyllCMS is up-to-date.
2023-11-18 05:22:40.596 Python[82791:1059582] WARNING: Secure coding is automatically enabled for restorable state! However, not on all supported macOS versions of this application. Opt-in to secure coding explicitly by implementing NSApplicationDelegate.applicationSupportsSecureRestorableState:.
--------------------------------------------------------------------------------
Measure
--------------------------------------------------------------------------------
Session log: ColorMunki & DELL U2720QM 2023-11-18 05-23-26

Working directory:
  /
   tmp/
    DisplayCAL-12bk1fke/

Command line:
  /Users/user/Library/Argyll_V3.0.2/bin/dispread
    -v
    -d1
    -c2
    -yl
    -P0.49973016729627634,0.5170532060027285,1.2469135802469136
    -F
    -H
    -Ibw
    -N
    -k
    'ColorMunki & DELL U2720QM 2023-11-18 05-23-26.cal'
    -s
    'ColorMunki & DELL U2720QM 2023-11-18 05-23-26'

DisplayCAL: caffeinate started, preventing screensaver and display/system sleep - waiting for dispread (PID 82908) to exit
DisplayCAL: Starting interaction with subprocess
Number of patches = 4

Setting up the instrument

Instrument Type:   ColorMunki

Serial Number:     4001184

Firmware version:  512

Chip ID:           01-44F1EF18000043

Version string:    'i1Studio FW V2.00  Build Nr. 1310'

Calibration Ver.:  6

Production No.:    183464

Display type ignored - instrument doesn't support display type selection

dispread: Warning - new_dispwin: Frame buffer depth 8 doesn't match VideoLUT 10

Place instrument on test window.

DisplayCAL: Detected instrument placement (screen/spot) message
DisplayCAL: Prompting to place instrument on screen
DisplayCAL: Waiting for send buffer
DisplayCAL: Instrument on screen
DisplayCAL: Send buffer received:
DisplayCAL: Sending buffer: ' '
Hit Esc or Q to give up, any other key to continue:

dispread: Warning - new_dispwin: Frame buffer depth 8 doesn't match VideoLUT 10

, using delay of 200 msec & 0 msec inst reaction

Patch 1 of 4



Spot read failed due to the sensor being in the wrong position

(Sensor should be in surface position)

DisplayCAL: Waiting for send buffer
DisplayCAL: Detected read failed due to wrong sensor position
DisplayCAL: Prompting to reposition instrument sensor
DisplayCAL: Send buffer received:
DisplayCAL: Sending buffer: ' '
Correct position then hit Esc or Q to give up, any other key to retry:

Patch 4 of 4



Black drift was 0.000000 DE

White drift was 0.000000 DE

The instrument can be removed from the screen.

Written 'ColorMunki & DELL U2720QM 2023-11-18 05-23-26.ti3'

DisplayCAL: caffeinate exited with code 0
DisplayCAL: Subprocess no longer alive (timeout)
DisplayCAL: Subprocess no longer alive (timeout)
dispread exitcode: 0
value could not be a str: 1931_2

Issue 2

Any two instruments is normal. If I plug in the third instrument and press fresh button, all the instruments gone. If I unplug any one of these three instrument and press fresh button, displaycal can recognize. Is it possible that the original author of DisplayCal did not consider that someone would plug in three colorimeters to a computer at the same time?

@eoyilmaz
Copy link
Owner

Is it possible that the original author of DisplayCal did not consider that someone would plug in three colorimeters to a computer at the same time?

I don't think the number of colorimeters connected to the computer is the main problem, as we expect more than one devices to be connected when a colorimeter correction file is generated. Could it be related to the newer device maybe? I see your ArgyllCMS version is 3.0.2 you might want to try it with the latest version which is 3.1.0 at the tiem of writing.

@eoyilmaz
Copy link
Owner

I think we need to add the i1 Display Plus HL to argyll_instruments.py. Anyone can supply the required information?

The following is for i1 Display Pro as an example:

    "i1 DisplayPro, ColorMunki Display": {
        "usb_ids": [{"vid": 0x0765, "pid": 0x5020, "hid": True}],
        "id": "i1D3",
        "spectral": False,
        "adaptive_mode": False,
        "highres_mode": False,
        "projector_mode": False,
        "sensor_cal": False,
        "skip_sensor_cal": False,
        "measurement_mode_map": {"c": "r", "l": "n"},
        "integration_time": [2.6, 0.2],  # Measured
        "refresh": True,
        "spectral_cal": True,
    },

@mylovesaber
Copy link
Author

I think we need to add the i1 Display Plus HL to argyll_instruments.py. Anyone can supply the required information?

The following is for i1 Display Pro as an example:

    "i1 DisplayPro, ColorMunki Display": {
        "usb_ids": [{"vid": 0x0765, "pid": 0x5020, "hid": True}],
        "id": "i1D3",
        "spectral": False,
        "adaptive_mode": False,
        "highres_mode": False,
        "projector_mode": False,
        "sensor_cal": False,
        "skip_sensor_cal": False,
        "measurement_mode_map": {"c": "r", "l": "n"},
        "integration_time": [2.6, 0.2],  # Measured
        "refresh": True,
        "spectral_cal": True,
    },

OK I finally get some free time for debugging this because of the national statutory holiday.

My pc:

  • m1pro with the latest macos version
  • Windows 11 23H2 2024/‎4/‎3 22631.3374

I will test on windows first, and then macos.
Let's set aside the discussion of configuring the new device for now, and let's solve the problems we encounter step by step.
I need to use this function:
image

@mylovesaber
Copy link
Author

The following steps are what I do for building and running displaycal on a newly installed win11:

install python environment:
https://www.python.org/downloads/release/python-3119/

install git:
https://git-scm.com/download/win

install Microsoft C++ Build Tools(Build whl file need this, only choose c++ tool, about 6.6 GB):
https://visualstudio.microsoft.com/visual-cpp-build-tools/

reopen windows terminal.

git clone https://github.com/eoyilmaz/displaycal-py3.git
cd displaycal-py3
git checkout develop
python -m venv .venv
.venv\Scripts\activate.bat
pip install -r requirements.txt
python -m build
pip install dist/DisplayCAL-3.9.12-cp311-cp311-win_amd64.whl

Add more module:

# No module named 'comtypes'
# Error - could not import WMI: No module named 'wmi'
# ModuleNotFoundError: No module named 'win32file'
pip install pywin32 comtypes wmi

I don't know how to deal with such error when starting displaycal after I installed comtypes module: No module named 'comtypes.gen'

My python environment path: D:\program\Python311

Win11 fault:

I don't know why win11 want me to choose any other program like vscode to open the command instead of python if I type displaycal in windows terminal.

And if I click choose program on windows will trigger win11 bug: loop for asking me which program should I use to open displaycal in the program list without python.exe.

So start command: python.exe D:\program\Python311\Scripts\displaycal

@mylovesaber
Copy link
Author

bug:

After the displaycal gui is loaded, if I want to switch language, I get this error:

instrument_name: i1 DisplayPro, ColorMunki Display
display_name   : Dell U2720QM (HDMI4K2K60HDR)
Warning - error while trying to set language for DisplayCAL-apply-profiles (127.0.0.1:15411) a bytes-like object is required, not 'str'

@mylovesaber
Copy link
Author

bug:

image
The picture above with two issue:

  1. The text and buttons within the red box below are misaligned and improperly sized.
  2. When I click ? and choose any preference in the red box. It will report an error:

image

The b causes the file path and link fail to load.

@mylovesaber
Copy link
Author

Prerequisite: I have disabled "Disable driver signature enforcement" on Win11 and connected both i1 Studio (Argyll) and i1 Display Plus HL directly to the computer's USB port rather than through a USB-C docking station.

In the Argyll_V3.1.0\usb directory, I ran ArgyllCMS_install_USB.exe with administrator privileges. After the command prompt window automatically closed, I could only see Argyll LibUSB-win32 devices at the top of the Device Manager, with i1 Studio (Argyll) listed.

However, when I run version 3.8.9.3 of DisplayCAL, I can see both i1 Display Plus HL and i1 Studio being recognized (although definitely not under these names, but they are definitely from the i1 Display Pro series).

So, I opened the ArgyllCMS.inf file in the Argyll_V3.1.0\usb directory and found that "Eye-One Display 3 (Argyll)" = LIBUSB0_DEV, USB\VID_0765&PID_5020 was commented out.
This file contains three instances of Eye-One Display 3, which I assume correspond to 32-bit and 64-bit versions.

I uncommented all three instances, then ran ArgyllCMS_install_USB.exe again. After installation, both i1 Studio (Argyll) and Eye-One Display 3 (Argyll)appeared underArgyll LibUSB-win32 devices` in the Device Manager.
image

As you give me the conf:

    "i1 DisplayPro, ColorMunki Display": {
        "usb_ids": [{"vid": 0x0765, "pid": 0x5020, "hid": True}],
        "id": "i1D3",
        "spectral": False,
        "adaptive_mode": False,
        "highres_mode": False,
        "projector_mode": False,
        "sensor_cal": False,
        "skip_sensor_cal": False,
        "measurement_mode_map": {"c": "r", "l": "n"},
        "integration_time": [2.6, 0.2],  # Measured
        "refresh": True,
        "spectral_cal": True,
    },

From Argyll_V3.1.0\spectro\insttypes.c of Argyll_V3.1.0 source code, I got why the value of id is i1D3
image

It solve the pid/vid/id value. But what does the rest key and value come from(include hid key)?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants