Discussion:
Argyllcms 1.6.0 and DTP94 instrument access failed
Robert Susmilch
2014-05-27 17:26:41 UTC
Permalink
Hello all,

Dug out my DTP94 and am trying to use it on my dual monitor setup on
Fedora 20 x64 with dispcalgui.

Originally used the Fedora repos for Argyllcms but ran into the
"instrument access failed" message after canceling the progress to
change settings. Tried many things to get it to work, sometimes it would
randomly work, more often not. Swapping usb ports, rebooting, trying on
my netbook with Coloreyes Pro 1.2 to maybe reset the puck... 9/10 times
nothing seems to really show a pattern.

I did a bit of googling, and removed the Fedora package of Argyllcms and
downloaded the zip from the website, jammed it, and pointed dispcalgui
to the bin files.

Once again 9/10 times doesn't work.

When it does work it will progress through the profiling and after an
hour or so die... Perhaps it's something resetting my usb bus, not sure
as I had a usb hard drive doing an extended smart scan the one time.

I could NOT find old versions of Argyllcms anywhere, which is really
unacceptable to me trying to see if an update killed it. In this
mailing list doing a search in the archives I did read that after 1.2.0
it wouldn't work for the fellow.

Are the DTP94's extremely picky? Faulty? I read that they are some of
the best for color, is there another puck I can purchase that is more
reliable? Any recommendations? I'm hoping for a fix for this since I
already spent the money on the DTP94 but if it's not going to work then
it's worthless.

Below is my log from running the dispcalgui command that it outputs
manually through dispcal with -D9 set, any help is appreciated.

/home/rasusmilch/Downloads/Argyll_V1.6.3/bin/dispcal -v2 -D9 -d1 -c1 -yl
"-P0.5,0.5,1.49868073879" -F -qh -t6500 -b120.0 -g2.2 -f1.0 -k0.0 -A4.0
"SM2333T 2014-05-27 120cdm² D6500 2.2 S 3xCurve+MTX"
Checking XRandR 1.2 VideoLUT access
Display 0 name = ':0.0'
Unable to intern atom 'EDID_DATA'
Got EDID for display
Checking XRandR 1.2 VideoLUT access
Display 1 name = ':0.0'
Unable to intern atom 'EDID_DATA'
Got EDID for display
icoms_get_paths: called
hid_get_paths: called
icoms_get_paths: returning 0 paths and ICOM_OK
usb_get_paths: about to look through buses:
usb_get_paths: about to stat /dev/bus/usb/004/001
usb_check_and_add: givem '/dev/bus/usb/004/001'
usb_check_and_add: checking vid 0x1d6b, pid 0x0003
usb_check_and_add: instrument not reconized
usb_get_paths: about to stat /dev/bus/usb/003/001
usb_check_and_add: givem '/dev/bus/usb/003/001'
usb_check_and_add: checking vid 0x1d6b, pid 0x0002
usb_check_and_add: instrument not reconized
usb_get_paths: about to stat /dev/bus/usb/002/002
usb_check_and_add: givem '/dev/bus/usb/002/002'
usb_check_and_add: checking vid 0x8087, pid 0x0024
usb_check_and_add: instrument not reconized
usb_get_paths: about to stat /dev/bus/usb/002/001
usb_check_and_add: givem '/dev/bus/usb/002/001'
usb_check_and_add: checking vid 0x1d6b, pid 0x0002
usb_check_and_add: instrument not reconized
usb_get_paths: about to stat /dev/bus/usb/001/012
usb_check_and_add: givem '/dev/bus/usb/001/012'
usb_check_and_add: checking vid 0x0765, pid 0xd094
set ep ad 0x81 packetsize 8 type 3
set ep ad 0x2 packetsize 8 type 3
usb_check_and_add: found nep10 2
usb_check_and_add: found instrument vid 0x0765, pid 0xd094
usb_get_paths: about to stat /dev/bus/usb/001/009
usb_check_and_add: givem '/dev/bus/usb/001/009'
usb_check_and_add: checking vid 0x1a40, pid 0x0101
usb_check_and_add: instrument not reconized
usb_get_paths: about to stat /dev/bus/usb/001/008
usb_check_and_add: givem '/dev/bus/usb/001/008'
usb_check_and_add: checking vid 0x045e, pid 0x0040
usb_check_and_add: instrument not reconized
usb_get_paths: about to stat /dev/bus/usb/001/007
usb_check_and_add: givem '/dev/bus/usb/001/007'
usb_check_and_add: checking vid 0x04d9, pid 0x1702
usb_check_and_add: instrument not reconized
usb_get_paths: about to stat /dev/bus/usb/001/006
usb_check_and_add: givem '/dev/bus/usb/001/006'
usb_check_and_add: checking vid 0x04f9, pid 0x0033
usb_check_and_add: instrument not reconized
usb_get_paths: about to stat /dev/bus/usb/001/004
usb_check_and_add: givem '/dev/bus/usb/001/004'
usb_check_and_add: checking vid 0x1a40, pid 0x0101
usb_check_and_add: instrument not reconized
usb_get_paths: about to stat /dev/bus/usb/001/003
usb_check_and_add: givem '/dev/bus/usb/001/003'
usb_check_and_add: checking vid 0x0557, pid 0x7000
usb_check_and_add: instrument not reconized
usb_get_paths: about to stat /dev/bus/usb/001/002
usb_check_and_add: givem '/dev/bus/usb/001/002'
usb_check_and_add: checking vid 0x8087, pid 0x0024
usb_check_and_add: instrument not reconized
usb_get_paths: about to stat /dev/bus/usb/001/001
usb_check_and_add: givem '/dev/bus/usb/001/001'
usb_check_and_add: checking vid 0x1d6b, pid 0x0002
usb_check_and_add: instrument not reconized
usb_get_paths: returning 1 paths and ICOM_OK
icoms_get_paths: failed to open serial "/dev/ttyS2" - not real
icoms_get_paths: failed to open serial "/dev/ttyS3" - not real
icoms_get_paths: failed to open serial "/dev/ttyS1" - not real
icoms_get_paths: failed to open serial "/dev/ttyS0" - not real
Setting up the instrument
new_inst: called with path '/dev/bus/usb/001/012 (Xrite DTP94)'
dtp92_init_coms: About to init USB
icoms_set_usb_port: About to set usb port characteristics
usb_open_port: Make sure USB port is open, tries 0
usb_open_port: About to open USB port '/dev/bus/usb/001/012'
usb_open_port: open port '/dev/bus/usb/001/012' succeeded
usb_open_port: 'serial' read quanta = packet size = 8
usb_open_port: USB port is now open
usb_install_signal_handlers: called
urb_reaper: reap starting
usb_install_signal_handlers: done
icoms_set_usb_port: usb port characteristics set ok
icoms_write_read: called with '0PR^M'

icoms_usb_ser_write: writing '0PR^M'
icoms_usb_ser_write: attempting to write 4 bytes to usb top = 500, i = 1
icoms_usb_transaction: req type 0x1 ep 0x2 size 4
icoms_usb_transaction: reset req 0x0x7fff8d40bd20 nourbs to 1
urb_reaper: urb reap URB 0 with status 0 bytes 4, urbs left 0
coms_usb_transaction: reap - 0 left
coms_usb_transaction: returning err 0x0 and 4 bytes
icoms_usb_ser_write: wrote 4 bytes
icoms_usb_ser_write: returning ICOM err 0x0

icoms_usb_ser_read: ep 0x81, ttop 500, quant 8
icoms_usb_ser_read: attempting to read 8 bytes from usb, top = 500, j = 0
icoms_usb_transaction: req type 0x1 ep 0x81 size 8
icoms_usb_transaction: reset req 0x0x7fff8d40bd10 nourbs to 1
urb_reaper: urb reap URB 0 with status 0 bytes 4, urbs left 0
coms_usb_transaction: reap - 0 left
coms_usb_transaction: returning err 0x8000 and 4 bytes
icoms_usb_ser_read: read 4 bytes, rbuf = '<00>'
icoms_usb_ser_read: returning '<00>' ICOM err 0x0
icoms_write_read: returning 0x0
dtp92_fcommand: command '0PR^M' returned '<00>', value 0x0
icoms_write_read: called with '0PR^M'

icoms_usb_ser_write: writing '0PR^M'
icoms_usb_ser_write: attempting to write 4 bytes to usb top = 500, i = 1
icoms_usb_transaction: req type 0x1 ep 0x2 size 4
icoms_usb_transaction: reset req 0x0x7fff8d40bd20 nourbs to 1
urb_reaper: urb reap URB 0 with status 0 bytes 4, urbs left 0
coms_usb_transaction: reap - 0 left
coms_usb_transaction: returning err 0x0 and 4 bytes
icoms_usb_ser_write: wrote 4 bytes
icoms_usb_ser_write: returning ICOM err 0x0

icoms_usb_ser_read: ep 0x81, ttop 500, quant 8
icoms_usb_ser_read: attempting to read 8 bytes from usb, top = 500, j = 0
icoms_usb_transaction: req type 0x1 ep 0x81 size 8
icoms_usb_transaction: reset req 0x0x7fff8d40bd10 nourbs to 1
urb_reaper: urb reap URB 0 with status 0 bytes 4, urbs left 0
coms_usb_transaction: reap - 0 left
coms_usb_transaction: returning err 0x8000 and 4 bytes
icoms_usb_ser_read: read 4 bytes, rbuf = '<00>'
icoms_usb_ser_read: returning '<00>' ICOM err 0x0
icoms_write_read: returning 0x0
dtp92_fcommand: command '0PR^M' returned '<00>', value 0x0
icoms_write_read: called with '^M'

icoms_usb_ser_write: writing '^M'
icoms_usb_ser_write: attempting to write 1 bytes to usb top = 500, i = 1
icoms_usb_transaction: req type 0x1 ep 0x2 size 1
icoms_usb_transaction: reset req 0x0x7fff8d40bd20 nourbs to 1
urb_reaper: urb reap URB 0 with status 0 bytes 1, urbs left 0
coms_usb_transaction: reap - 0 left
coms_usb_transaction: returning err 0x0 and 1 bytes
icoms_usb_ser_write: wrote 1 bytes
icoms_usb_ser_write: returning ICOM err 0x0

icoms_usb_ser_read: ep 0x81, ttop 500, quant 8
icoms_usb_ser_read: attempting to read 8 bytes from usb, top = 500, j = 0
icoms_usb_transaction: req type 0x1 ep 0x81 size 8
icoms_usb_transaction: reset req 0x0x7fff8d40bd10 nourbs to 1
urb_reaper: urb reap URB 0 with status 0 bytes 4, urbs left 0
coms_usb_transaction: reap - 0 left
coms_usb_transaction: returning err 0x8000 and 4 bytes
icoms_usb_ser_read: read 4 bytes, rbuf = '<00>'
icoms_usb_ser_read: returning '<00>' ICOM err 0x0
icoms_write_read: returning 0x0
dtp92_fcommand: command '^M' returned '<00>', value 0x0
icoms_write_read: called with '0PR^M'

icoms_usb_ser_write: writing '0PR^M'
icoms_usb_ser_write: attempting to write 4 bytes to usb top = 2000, i = 1
icoms_usb_transaction: req type 0x1 ep 0x2 size 4
icoms_usb_transaction: reset req 0x0x7fff8d40bd20 nourbs to 1
urb_reaper: urb reap URB 0 with status 0 bytes 4, urbs left 0
coms_usb_transaction: reap - 0 left
coms_usb_transaction: returning err 0x0 and 4 bytes
icoms_usb_ser_write: wrote 4 bytes
icoms_usb_ser_write: returning ICOM err 0x0

icoms_usb_ser_read: ep 0x81, ttop 2000, quant 8
icoms_usb_ser_read: attempting to read 8 bytes from usb, top = 2000, j = 0
icoms_usb_transaction: req type 0x1 ep 0x81 size 8
icoms_usb_transaction: reset req 0x0x7fff8d40bd10 nourbs to 1
urb_reaper: urb reap URB 0 with status 0 bytes 4, urbs left 0
coms_usb_transaction: reap - 0 left
coms_usb_transaction: returning err 0x8000 and 4 bytes
icoms_usb_ser_read: read 4 bytes, rbuf = '<00>'
icoms_usb_ser_read: returning '<00>' ICOM err 0x0
icoms_write_read: returning 0x0
dtp92_fcommand: command '0PR^M' returned '<00>', value 0x0
dtp92_init_coms: init coms has suceeded
dtp92_init_inst: called
icoms_write_read: called with '0PR^M'

icoms_usb_ser_write: writing '0PR^M'
icoms_usb_ser_write: attempting to write 4 bytes to usb top = 2000, i = 1
icoms_usb_transaction: req type 0x1 ep 0x2 size 4
icoms_usb_transaction: reset req 0x0x7fff8d40bda0 nourbs to 1
urb_reaper: urb reap URB 0 with status 0 bytes 4, urbs left 0
coms_usb_transaction: reap - 0 left
coms_usb_transaction: returning err 0x0 and 4 bytes
icoms_usb_ser_write: wrote 4 bytes
icoms_usb_ser_write: returning ICOM err 0x0

icoms_usb_ser_read: ep 0x81, ttop 2000, quant 8
icoms_usb_ser_read: attempting to read 8 bytes from usb, top = 2000, j = 0
icoms_usb_transaction: req type 0x1 ep 0x81 size 8
icoms_usb_transaction: reset req 0x0x7fff8d40bd90 nourbs to 1
urb_reaper: urb reap URB 0 with status 0 bytes 4, urbs left 0
coms_usb_transaction: reap - 0 left
coms_usb_transaction: returning err 0x8000 and 4 bytes
icoms_usb_ser_read: read 4 bytes, rbuf = '<00>'
icoms_usb_ser_read: read ran out of time
icoms_usb_ser_read: returning '<00>' ICOM err 0x4000
icoms_write_read: returning 0x4000
dtp92_fcommand: serial i/o failure on write_read '0PR^M'
init_inst returned 'Communications failure' (Receive timeout)
new_disprd failed because init_inst failed
icoms_del: called
icoms_del: closing port
usb_close_port: called
usb_close_port: waking reaper thread to trigger exit
usb_close_port: waiting for reaper thread
urb_reaper: poll returned 1 and events 0 1
urb_reaper: shutdown or too many failure
urb_reaper: cleared requests
urb_reaper: thread done
usb_close_port: usb port has been released and closed
dispcal: Error - new_disprd() failed with 'Instrument Access Failed'
Graeme Gill
2014-05-28 01:26:39 UTC
Permalink
I did a bit of googling, and removed the Fedora package of Argyllcms and downloaded the
zip from the website, jammed it, and pointed dispcalgui to the bin files.
Hi,
there are some known bugs in DTP94 support in the current release.
If you are building from source, try the current development snapshot:
<http://www.argyllcms.com/Argyll_dev_src.zip>, which should fix the problem.
I could NOT find old versions of Argyllcms anywhere, which is really unacceptable to me
trying to see if an update killed it.
Source code back to 1.4 can still be downloaded from the website
using the expected naming, ie.:
<http://www.argyllcms.com/Argyll_V1.4.0_src.zip>.
Are the DTP94's extremely picky? Faulty? I read that they are some of the best for color,
is there another puck I can purchase that is more reliable?
DTP94's in generate are pretty reliable, and not so fussy about USB as some
other instruments, although it does have some quirks. The main drawback is
a lack of preset calibrations for modern display devices.
Any recommendations?
i1display Pro is the best bang for buck, and the first low cost display instrument from
X-Rite that is definitely better than the DTP94.

Graeme Gill.
robert-btwG8kScYbJWk0Htik3J/
2014-05-28 01:50:17 UTC
Permalink
Thanks for the quick reply. I wrestled with installing windows on a spare drive and am profiling right now... I remember why I hate windows... Spent hours over writing, playing with cabling, etc, just trying to install only to find windows setup couldn't play nice with my one drive still attached. Then comes driver hell. Ugh.

Argyll and dispcalgui seem to be running perfectly so far on Windows 7 64 bit. Can stop calibration multiple times and I don't get that error about the instrument access.

I think it would be nice to place even a link or general directions on where to find old versions, if there is any kind of versioning system in place, etc.

Lastly, two questions.

1. Are profiles OS / driver specific? Will my windows 7 profiles be valid under linux?

2. When doing a LUT profile in dispcalgui there is a drop down box for what I assume is the table size, defaults to 33x33x33 however you can go bigger. Besides file size is there any down side to selecting bigger, I assume compatibility would be affected? But also would think that banding would be less? Sorry if these are novice questions, just getting into color management.

2b. Single curve versus separate color curves as well for compatibility?

Thanks for the hard work on it, looks like a great program from what I've seen in my Googling.
Post by Robert Susmilch
I did a bit of googling, and removed the Fedora package of Argyllcms
and downloaded the
Post by Robert Susmilch
zip from the website, jammed it, and pointed dispcalgui to the bin
files.
Hi,
there are some known bugs in DTP94 support in the current release.
<http://www.argyllcms.com/Argyll_dev_src.zip>, which should fix the problem.
Post by Robert Susmilch
I could NOT find old versions of Argyllcms anywhere, which is really
unacceptable to me
Post by Robert Susmilch
trying to see if an update killed it.
Source code back to 1.4 can still be downloaded from the website
<http://www.argyllcms.com/Argyll_V1.4.0_src.zip>.
Post by Robert Susmilch
Are the DTP94's extremely picky? Faulty? I read that they are some of
the best for color,
Post by Robert Susmilch
is there another puck I can purchase that is more reliable?
DTP94's in generate are pretty reliable, and not so fussy about USB as some
other instruments, although it does have some quirks. The main drawback is
a lack of preset calibrations for modern display devices.
Post by Robert Susmilch
Any recommendations?
i1display Pro is the best bang for buck, and the first low cost display instrument from
X-Rite that is definitely better than the DTP94.
Graeme Gill.
--
Sent from my Android phone with K-9 Mail. Please excuse my brevity.
Florian Höch
2014-05-28 02:04:58 UTC
Permalink
Post by robert-btwG8kScYbJWk0Htik3J/
1. Are profiles OS / driver specific? Will my windows 7 profiles be valid under linux?
The profile should be valid as long as it's the same hardware (and
hardware configuration).
Post by robert-btwG8kScYbJWk0Htik3J/
2. When doing a LUT profile in dispcalgui there is a drop down box for
what I assume is the table size, defaults to 33x33x33 however you can go
bigger. Besides file size is there any down side to selecting bigger, I
assume compatibility would be affected?
The table size selector pertains to the "smooth B2A tables" feature.
Higher table size = potentially higher accuracy, lower table size =
better "smoothness". The default should be fine. It's a bit of a memory
hog, so if you want to go higher it helps to have a lot of RAM to
prevent it from swapping (I'd recommend >4G total memory for anything
higher than default if you are under Windows).
Post by robert-btwG8kScYbJWk0Htik3J/
2b. Single curve versus separate color curves as well for compatibility?
Accuracy (3 curves) vs. grayscale neutrality (single curve), assuming
calibration has been done.
--
Florian Höch
Graeme Gill
2014-05-28 02:29:14 UTC
Permalink
Post by Florian Höch
Accuracy (3 curves) vs. grayscale neutrality (single curve), assuming
calibration has been done.
Note that the latter will only be the case if the profiling accuracy
or correction precision is worse than the inherent neutrality of the
device being profiled.

Graeme.

Graeme Gill
2014-05-28 02:26:41 UTC
Permalink
robert-btwG8kScYbJWk0Htik3J/***@public.gmane.org wrote:

Hi,
Post by robert-btwG8kScYbJWk0Htik3J/
Argyll and dispcalgui seem to be running perfectly so far on Windows 7 64 bit. Can stop
calibration multiple times and I don't get that error about the instrument access.
Yes, it's a bug that affects OS X/Linux. MSWin escaped because it uses a different
delay function.
Post by robert-btwG8kScYbJWk0Htik3J/
I think it would be nice to place even a link or general directions on where to find
old versions, if there is any kind of versioning system in place, etc.
It complicates release to track these sorts of things. Complex release process
== reluctance to do a release == longer between fixes. Bad release == lots of support
when stuff doesn't work.
Post by robert-btwG8kScYbJWk0Htik3J/
1. Are profiles OS / driver specific? Will my windows 7 profiles be valid under linux?
In general, profiles are platform independent if the same hardware is being used,
and the same values make their way to the hardware. There could be problems if
different OS's change the latter. It should be fine for display profiles.
Print profiles using different printer drivers are likely to be more problematic.
Post by robert-btwG8kScYbJWk0Htik3J/
2. When doing a LUT profile in dispcalgui there is a drop down box for what I assume is
the table size, defaults to 33x33x33 however you can go bigger. Besides file size is
there any down side to selecting bigger, I assume compatibility would be affected? But
also would think that banding would be less? Sorry if these are novice questions, just
getting into color management.
It's always hard to say, because it depends on the exact situation.
Bigger = slower to build and slower to use.
Sometimes finer details reveals more artifacts.

My general advice is to use the smallest table size that gives you
acceptable accuracy, and to only move to a bigger table size if
you have proven that it improves the result.
Post by robert-btwG8kScYbJWk0Htik3J/
2b. Single curve versus separate color curves as well for compatibility?
Some SW seems to demand single curves in matrix profiles. I don't know
exactly what that is, apart from the display profiles for my rather old copy
of Photoshop.

Graeme Gill.
Loading...