After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 605856 - Properly support spectrophotometers
Properly support spectrophotometers
Status: RESOLVED FIXED
Product: gnome-color-manager
Classification: Core
Component: general
git master
Other Linux
: Normal normal
: ---
Assigned To: gnome-color-manager-maint
gnome-color-manager-maint
Depends on:
Blocks:
 
 
Reported: 2010-01-01 17:39 UTC by Pascal de Bruijn
Modified: 2010-04-28 14:37 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
GCM Screenscape while profiling with the ColorMunki (7.94 KB, text/plain)
2010-01-22 17:37 UTC, Pascal de Bruijn
Details
Some went wrong (62.24 KB, text/plain)
2010-01-26 18:00 UTC, Pascal de Bruijn
Details
New GCM Screenscrape, still not entirely right (64.87 KB, text/plain)
2010-01-27 18:35 UTC, Pascal de Bruijn
Details
GCM Screenscape dispread still fails (53.65 KB, text/plain)
2010-01-28 20:49 UTC, Pascal de Bruijn
Details

Description Pascal de Bruijn 2010-01-01 17:39:01 UTC
I recently acquired a ColorMunki which is not a colorimeter but a spectrophotometer.

The "problem" with spectrophotometers is that they actually require a self-calibration phase before they are useful for anything at all...

For some spectrophotometers a reference tile is supplied along with the device, but the ColorMunki has this built it. It requires the user to actually rotate a dial on the device, which moves the sensor away from the aperture, and towards an internal calibration tile. (Having the tile internal prevents it from getting dirty, or you losing it).

The calibration phase has to be done for both dispcal and dispread and chartread:

$ dispcal/dispread/chartread -v MyChart
Set instrument sensor to calibration position,
 and then hit any key to continue,
 or hit Esc or Q to abort:
Calibration complete
...the normal procedure as with colorimeters resume...

The problem with this is that currently GCM assumes the sensor is ready to go, instead of argyll requiring user interaction. But with a spectrophotometer futher user interaction is required:

1. Switch device dial (or put the spectrophotometer on a special calibration cradle)
2. Press enter (on the keyboard)
   Argyll now self-calibrates the spectrophotometer
3. Switch device dial back to normal position (or remove spectrophotometer from the cradle)
4. Place spectrophotometer on the screen (or whatever media)
4. Press enter (on the keyboard)
   Argyll now starts calibrating/profiling your media

If any further information is required, place let me know.
Comment 1 Richard Hughes 2010-01-21 10:39:35 UTC
(In reply to comment #0)
> The "problem" with spectrophotometers is that they actually require a
> self-calibration phase before they are useful for anything at all...

I didn't know this.

> The problem with this is that currently GCM assumes the sensor is ready to go,
> instead of argyll requiring user interaction. But with a spectrophotometer
> futher user interaction is required:

So it looks like we need to screen-scrape that text. Eugh. I wish argyll could just install a shared library which we could use. It's bad enough it's doing unbuffered IO.

Richard.
Comment 2 Richard Hughes 2010-01-21 12:35:36 UTC
commit ec886ab414418c89eea735e75f15fb84a9ceab82
Author: Richard Hughes <richard@hughsie.com>
Date:   Thu Jan 21 12:05:40 2010 +0000

    trivial: screenscrape the argyll output so we can do some clever things in the future


Could you please run g-c-m from git master, and attach all the debugging output?

You should get some "VTE: could not screenscrape:" lines.
Comment 3 Pascal de Bruijn 2010-01-22 17:37:48 UTC
Created attachment 152024 [details]
GCM Screenscape while profiling with the ColorMunki

Sorry for the slow response.

Here's the log, I hope it helps.
Comment 4 Richard Hughes 2010-01-26 13:21:37 UTC
commit dc866132cc4aee7fa9c206a51d37363936f4c1c9
Author: Richard Hughes <richard@hughsie.com>
Date:   Tue Jan 26 13:20:11 2010 +0000

    Screenscrape the Argyll output to better support other hardware devices. Fixes #605558

Can you verify this new functionality works please. Thanks.
Comment 5 Pascal de Bruijn 2010-01-26 18:00:00 UTC
Created attachment 152329 [details]
Some went wrong

The current changes are not complete. After dispcal, the procedure seems to get stuck, unwilling to continue, or present new dialogs.

Also at the start of dispcal, I set my device to it's calibration mode, and GCM immediately presents the dialog to put the device on the screen... Ideally GCM would detect how long the calibration took from dispcal/dispread, or just wait for 30 seconds or so, as a quick fix.

After returning the Munki to it's measuring mode and placing it (back) on the screen, I still have to open the VTE and press enter for dispcal to continue, GCM does not present an OK button (next to the always present Cancel).
Comment 6 Pascal de Bruijn 2010-01-26 18:00:24 UTC
Sorry forgot to reopen the feature request.
Comment 7 Richard Hughes 2010-01-26 18:15:19 UTC
Can you explain how exactly you use a spectrophotometer please? Do you stick it to the screen and then set to calibrate, or do you set it, then stick it to the screen? Then, do you have to remove it from the screen to change the calibration mode? Thanks.
Comment 8 Pascal de Bruijn 2010-01-26 18:26:06 UTC
I more or less already did at the top of the feature request, but I'll try to clarify...

For self-calibration spectrophotometers generally use one of two approaches:

 1. A seperately supplied reference tile (often integrated into a cradle of some sort).

 2. An internal reference tile.

With the first approach, the device has to be set down into the cradle with it's aperture on the reference tile. 

My ColorMunki uses the second approach, the actual sensor in the device can be rotated, so the sensor can be rotated away from the external aperture, towards an internal self-calibration tile.

So the procedure is this (for every argyll command that drives the Munki):

 1. Rotate to the self-calibration position
 2. Press enter for Argyll to commence self-calibration (which takes several seconds)
 3. Rotate to one of the measurement positions (so we have an external aperture)
 4. Put the device's aperture on the surface we want to measure. Be it a screen, be it a printed target.
 4. Press enter for Argyll to commence measurements.

I hope this clears things up a bit.
Comment 9 Pascal de Bruijn 2010-01-26 18:38:11 UTC
While it might be slightly inapproriate to post here, this YouTube video might quickly clear some things up:

  http://www.youtube.com/watch?v=T_dC-3fWoC4
Comment 10 Richard Hughes 2010-01-27 16:47:01 UTC
Can you try now please:

commit fb676f7b905075e4cc557d53038b330e382778fb
Author: Richard Hughes <richard@hughsie.com>
Date:   Wed Jan 27 16:45:46 2010 +0000

    Use a state machine when we are dealing with argyll as we may have more than one different type of request
Comment 11 Pascal de Bruijn 2010-01-27 18:35:47 UTC
Created attachment 152438 [details]
New GCM Screenscrape, still not entirely right

The calibration/profiling procedure doesn't get "stuck" anymore. I can now again successfully generate a profile again.

However, I still need to intervene sometimes. Since the "Place the colorimeter on the screen" dialog does not have an OK button, only Cancel, which means I have to open the VTE, and press enter for it to continue.

This must be frustrating since you don't have a device to test this with, so I appreciate your patience.
Comment 12 Richard Hughes 2010-01-27 19:25:25 UTC
commit 28c1e882315b5591d8491cc3f3eee70cd6070b06
Author: Richard Hughes <richard@hughsie.com>
Date:   Wed Jan 27 19:16:28 2010 +0000

    trivial: push and pop the okay button visibility when calibrating
Comment 13 Pascal de Bruijn 2010-01-27 21:39:30 UTC
Seems to work well for dispcal... But not yet for dispread...

This self-calibration procedure needs to be done for each and every time the spectrophotometer is used... Not just the first time it's connected to USB... But every time Argyll initializes the device...

So dispcal/dispread/chartread all need their own self-calibration procedure...
Comment 14 Pascal de Bruijn 2010-01-28 20:49:22 UTC
Created attachment 152518 [details]
GCM Screenscape dispread still fails

I just tried the new code in git.

The dispcal part works just fine... While the dispread part still fails... 

It seems as if after setting up the photospectrometer for self-calibration (by turning the dial), and click OK, dispread self-calibrates the photospectrometer, and then directly tries to continue reading patches... Without asking the user to place the photospectrometer back on the screen (and turning the dial back, to the measurement position).

As usual, I've attached a new screenscrape.
Comment 15 Pascal de Bruijn 2010-01-30 15:23:17 UTC
Another small note...

Currently during the self-calibration, a standard dialog (I think it was "Drawingpatches") turns up, which is rather incorrect... 

I'd love to see a new dialog, simply titled "Self calibration", with text along the lines of this:

"The device is currently self calibrating, this can take a couple of seconds..."
Comment 16 Pascal de Bruijn 2010-02-22 17:21:08 UTC
I just retried with git, and it basically works now.

There are some cosmetic issues though:

For dispcal, GCM does not ask to return the device to it's screen calibration position. It _does_ for dispread.

Also, during the self-calibration the 'drawing patches' dialog is shown which is very misleading since no patches are actually being drawn, this may confuse some users into thinking GCM is malfunctioning. I'd highly advocate a separate "Self-calibration" dialog.

Btw, I like the artwork ;)
Comment 17 Richard Hughes 2010-04-28 14:37:17 UTC
I think we can close this bug now. The calibration stuff is an argyll bug that Graeme has just fixed this morning. I think the dialogs also show the right thing in most places too. If the wording needs fixing I would appreciate a trivial patch as I think we're good now. Thanks.