getting my new graphic tablet cooperating with gimp

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

getting my new graphic tablet cooperating with gimp

Chuck Robey
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I have a nice new UC-Logic WP8060-TAB08, sometimes called the Superpen, and
I want to get it working so's I can make fine art with it (yeah, I'm a
dreamer, so what else is new, hey?)  The return off of dmesg is:

ums0: <UC-LOGIC Tablet WP8060U, class 0/0, rev 1.10/0.00, addr 2> on uhub0
ums0: X report 0x0002 not supported
device_attach: ums0 attach returned 6

That error is "Device not configured", and sure enough, there is no device
like /dev/ums0 being created for me.  This rather puts a kink in my ability
to set up my xorg.conf to use XInput (I have already read how to do that,
if I ever find a driver that is either named superpen or compatible with
it, I think likely).

I took at look at /usr/src/sys/dev/usb/usbdevs, and if you look above,
you'll see it probed with the number 0x5543.  That number shows up  already
taken in usbdevs as:

product CMOTECH CNU550          0x5543  CDMA 2000 1xRTT/1xEVDO USB modem

Nothing else seems more likely to me.  Anyone have any suggestions to me?
I'm currently reading all I can lay hands on about usb, so I won't act as a
completely idiot when you give me a good suggestion.  I'm also giving my
time to Google, looking at both Linux and Gimp documents for this detail.

Thanks.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHrijrz62J6PPcoOkRAu7GAJ9QzWCnX2AMNQFdRny4cPw8GDIHVACdFxqV
GdxPyfQQt7top2rbv7iIlW4=
=oJp0
-----END PGP SIGNATURE-----
_______________________________________________
[hidden email] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[hidden email]"
Reply | Threaded
Open this post in threaded view
|

Re: getting my new graphic tablet cooperating with gimp

Kai Wang
On Sat, Feb 09, 2008 at 05:27:55PM -0500, Chuck Robey wrote:
> I have a nice new UC-Logic WP8060-TAB08, sometimes called the Superpen, and
> I want to get it working so's I can make fine art with it (yeah, I'm a
> dreamer, so what else is new, hey?)  The return off of dmesg is:
>
> ums0: <UC-LOGIC Tablet WP8060U, class 0/0, rev 1.10/0.00, addr 2> on uhub0
> ums0: X report 0x0002 not supported
> device_attach: ums0 attach returned 6

This is because your tablet use absolute coordinates (most tablets do)
while ums(4) currently only support relative ones.

Could you please try to dump your pen's report descriptor and paste it
here, thus we can have more infomation?

You can do it by:

Download the tool:
   http://people.freebsd.org/~kaiw/tools/krepdump.tgz
 
# tar xzvf krepdump.tgz
# cd krepdump
# make
# kldload ./krepdump.ko

Then connect your superpen to the usb port, (if it is already connected
you will have to disconnect it first) the report descriptor will be
printed on the console. (or you can type 'dmesg' to see it)

--
Kai
_______________________________________________
[hidden email] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[hidden email]"
Reply | Threaded
Open this post in threaded view
|

Re: getting my new graphic tablet cooperating with gimp

Chuck Robey
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Kai Wang wrote:

> On Sat, Feb 09, 2008 at 05:27:55PM -0500, Chuck Robey wrote:
>> I have a nice new UC-Logic WP8060-TAB08, sometimes called the Superpen, and
>> I want to get it working so's I can make fine art with it (yeah, I'm a
>> dreamer, so what else is new, hey?)  The return off of dmesg is:
>>
>> ums0: <UC-LOGIC Tablet WP8060U, class 0/0, rev 1.10/0.00, addr 2> on uhub0
>> ums0: X report 0x0002 not supported
>> device_attach: ums0 attach returned 6
>
> This is because your tablet use absolute coordinates (most tablets do)
> while ums(4) currently only support relative ones.
>
> Could you please try to dump your pen's report descriptor and paste it
> here, thus we can have more infomation?
>
> You can do it by:
>
> Download the tool:
>    http://people.freebsd.org/~kaiw/tools/krepdump.tgz
>  
> # tar xzvf krepdump.tgz
> # cd krepdump
> # make
> # kldload ./krepdump.ko
>
> Then connect your superpen to the usb port, (if it is already connected
> you will have to disconnect it first) the report descriptor will be
> printed on the console. (or you can type 'dmesg' to see it)
>
> --
> Kai

Kai, another thing just occurred to me, you mgith need a physical
description of the system.  It comes with a stylus that has a replaceable
plastic tip, and 3 extra tips are packaged with it.  The stylus itself has
a 1.5 volt AAA cell in it, and the barrel of the stylus has a rocker switch
on it, one that seems to have 3 positions: a center position, which I would
probably define as "rest", to which it remains when no force is applied,
and the switch may be rocked either forward (nearer to the tip) or backward
(away from the tip).  There might possibly be a third position that might
be defined, because the light on the top of the tablet itself comes on
solid when the tip of the pen touches it, and that might possibly be
defined as a third button, sort of mimicing a 3 button mouse.

I understand from company literature that the tablet allows 1024 levels of
force gradient, to select differing widths of brushes in applications such
as gimp.

Like I siad, the tablet has a green LED which is mounted at the top center
of the tablet.  The writing area is 8 inches wide by 6 inches tall, and is
covered by a translucent piece of fairly heavy (maybe 10 mil?) plastic.  I
noted no spares for this in the package.  They will probably sell
replacements for this covering, as it would be a very natural place for a
particular application to emblazon a series of hot areas for special input..
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHr0Nwz62J6PPcoOkRAq9pAJ92xZdlAisXsYt/WfxofaEegoij4QCghOXF
3I8TvLXiefVJKK4X+ztRvms=
=Ezlg
-----END PGP SIGNATURE-----
_______________________________________________
[hidden email] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[hidden email]"
Reply | Threaded
Open this post in threaded view
|

Re: getting my new graphic tablet cooperating with gimp

Torfinn Ingolfsen
In reply to this post by Kai Wang
On Sun, 10 Feb 2008 18:10:52 +0100
Kai Wang <[hidden email]> wrote:

> On Sat, Feb 09, 2008 at 05:27:55PM -0500, Chuck Robey wrote:
> > I have a nice new UC-Logic WP8060-TAB08, sometimes called the
> > Superpen, and I want to get it working so's I can make fine art
> > with it (yeah, I'm a dreamer, so what else is new, hey?)  The
> > return off of dmesg is:
> >
> > ums0: <UC-LOGIC Tablet WP8060U, class 0/0, rev 1.10/0.00, addr 2>
> > on uhub0 ums0: X report 0x0002 not supported
> > device_attach: ums0 attach returned 6
>
> This is because your tablet use absolute coordinates (most tablets do)
> while ums(4) currently only support relative ones.
>
> Could you please try to dump your pen's report descriptor and paste it
> here, thus we can have more infomation?

In case it is of interest, herer is the "krepdump" from a Wacom CTF-420
tablet:
Feb 13 17:56:24 kg-work kernel: [report desc size=110]
Feb 13 17:56:24 kg-work kernel: USAGE PAGE Generic Desktop(1)
Feb 13 17:56:24 kg-work kernel: USAGE Mouse(2)
Feb 13 17:56:24 kg-work kernel: COLLECTION Application(1)
Feb 13 17:56:24 kg-work kernel: REPORT ID 1
Feb 13 17:56:24 kg-work kernel: USAGE Pointer(1)
Feb 13 17:56:24 kg-work kernel: COLLECTION Physical(0)
Feb 13 17:56:24 kg-work kernel: USAGE PAGE Button(9)
Feb 13 17:56:24 kg-work kernel: USAGE MINIMUM Button1(1)
Feb 13 17:56:24 kg-work kernel: USAGE MAXIMUM Button3(3)
Feb 13 17:56:24 kg-work kernel: LOGICAL MINIMUM 0
Feb 13 17:56:24 kg-work kernel: LOGICAL MAXIMUM 1
Feb 13 17:56:24 kg-work kernel: REPORT COUNT 3
Feb 13 17:56:24 kg-work kernel: REPORT SIZE 1
Feb 13 17:56:24 kg-work kernel: INPUT ( Data Variable Absolute ) (2)
Feb 13 17:56:24 kg-work kernel: REPORT COUNT 1
Feb 13 17:56:24 kg-work kernel: REPORT SIZE 5
Feb 13 17:56:24 kg-work kernel: INPUT ( Const Array Absolute ) (1)
Feb 13 17:56:24 kg-work kernel: USAGE PAGE Generic Desktop(1)
Feb 13 17:56:24 kg-work kernel: USAGE X(48)
Feb 13 17:56:24 kg-work kernel: USAGE Y(49)
Feb 13 17:56:24 kg-work kernel: USAGE Wheel(56)
Feb 13 17:56:24 kg-work kernel: LOGICAL MINIMUM -127
Feb 13 17:56:24 kg-work kernel: LOGICAL MAXIMUM 127
Feb 13 17:56:24 kg-work kernel: REPORT SIZE 8
Feb 13 17:56:24 kg-work kernel: REPORT COUNT 3
Feb 13 17:56:24 kg-work kernel: INPUT ( Data Variable Relative ) (6)
Feb 13 17:56:24 kg-work kernel: REPORT COUNT 3
Feb 13 17:56:24 kg-work kernel: INPUT ( Const Array Absolute ) (1)
Feb 13 17:56:24 kg-work kernel: END COLLECTION
Feb 13 17:56:24 kg-work kernel: END COLLECTION
Feb 13 17:56:24 kg-work kernel: USAGE PAGE Digitizer(13)
Feb 13 17:56:24 kg-work kernel: USAGE Digitizer(1)
Feb 13 17:56:24 kg-work kernel: COLLECTION Application(1)
Feb 13 17:56:24 kg-work kernel: REPORT ID 2
Feb 13 17:56:24 kg-work kernel: COLLECTION Physical(0)
Feb 13 17:56:24 kg-work kernel: USAGE PAGE Microsoft(65280)
Feb 13 17:56:24 kg-work kernel: USAGE Unknown Usage(1)
Feb 13 17:56:24 kg-work kernel: LOGICAL MINIMUM 0
Feb 13 17:56:24 kg-work kernel: LOGICAL MAXIMUM 255
Feb 13 17:56:24 kg-work kernel: REPORT SIZE 8
Feb 13 17:56:24 kg-work kernel: REPORT COUNT 7
Feb 13 17:56:24 kg-work kernel: INPUT ( Data Variable Absolute ) (2)
Feb 13 17:56:24 kg-work kernel: END COLLECTION
Feb 13 17:56:24 kg-work kernel: USAGE Unknown Usage(1)
Feb 13 17:56:24 kg-work kernel: REPORT ID 99
Feb 13 17:56:24 kg-work kernel: REPORT COUNT 7
Feb 13 17:56:24 kg-work kernel: INPUT ( Data Variable Absolute ) (2)
Feb 13 17:56:24 kg-work kernel: USAGE Unknown Usage(1)
Feb 13 17:56:24 kg-work kernel: REPORT ID 2
Feb 13 17:56:24 kg-work kernel: REPORT COUNT 1
Feb 13 17:56:24 kg-work kernel: FEATURE ( Data Variable Absolute ) (2)
Feb 13 17:56:24 kg-work kernel: USAGE Unknown Usage(1)
Feb 13 17:56:24 kg-work kernel: REPORT ID 3
Feb 13 17:56:24 kg-work kernel: REPORT COUNT 1
Feb 13 17:56:24 kg-work kernel: FEATURE ( Data Variable Absolute ) (2)
Feb 13 17:56:24 kg-work kernel: END COLLECTION
Feb 13 17:56:24 kg-work kernel: [hexdump]
Feb 13 17:56:24 kg-work kernel: 0000 05 01 09 02 A1 01 85 01 09 01 A1 00 05 09 19 01
Feb 13 17:56:24 kg-work kernel: 0010 29 03 15 00 25 01 95 03 75 01 81 02 95 01 75 05
Feb 13 17:56:24 kg-work kernel: 0020 81 01 05 01 09 30 09 31 09 38 15 81 25 7F 75 08
Feb 13 17:56:24 kg-work kernel: 0030 95 03 81 06 95 03 81 01 C0 C0 05 0D 09 01 A1 01
Feb 13 17:56:24 kg-work kernel: 0040 85 02 A1 00 06 00 FF 09 01 15 00 26 FF 00 75 08
Feb 13 17:56:24 kg-work kernel: 0050 95 07 81 02 C0 09 01 85 63 95 07 81 02 09 01 85
Feb 13 17:56:24 kg-work kernel: 0060 02 95 01 B1 02 09 01 85 03 95 01 B1 02 C0
Feb 13 17:56:24 kg-work kernel: ums0: WACOM CTF-420 V2.0-0, rev 1.10/2.00, addr 2, iclass 3/1
Feb 13 17:56:24 kg-work kernel: ums0: 3 buttons and Z dir.

Note: this tablet works with moused already. I haven't tried any "tablet" settings in xorg yet.
system:
tingo@kg-work$ uname -a
FreeBSD kg-work.kg4.no 6.3-STABLE FreeBSD 6.3-STABLE #7: Sat Jan 26 22:35:33 CET 2008     [hidden email]:/usr/obj/usr/src/sys/SS51G  i386
--
Regards,
Torfinn Ingolfsen

_______________________________________________
[hidden email] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[hidden email]"
Reply | Threaded
Open this post in threaded view
|

Re: getting my new graphic tablet cooperating with gimp

Chuck Robey
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Torfinn Ingolfsen wrote:

> On Sun, 10 Feb 2008 18:10:52 +0100
> Kai Wang <[hidden email]> wrote:
>
>> On Sat, Feb 09, 2008 at 05:27:55PM -0500, Chuck Robey wrote:
>>> I have a nice new UC-Logic WP8060-TAB08, sometimes called the
>>> Superpen, and I want to get it working so's I can make fine art
>>> with it (yeah, I'm a dreamer, so what else is new, hey?)  The
>>> return off of dmesg is:
>>>
>>> ums0: <UC-LOGIC Tablet WP8060U, class 0/0, rev 1.10/0.00, addr 2>
>>> on uhub0 ums0: X report 0x0002 not supported
>>> device_attach: ums0 attach returned 6
>> This is because your tablet use absolute coordinates (most tablets do)
>> while ums(4) currently only support relative ones.
>>
>> Could you please try to dump your pen's report descriptor and paste it
>> here, thus we can have more infomation?

I appreciate the extra information.  In fact, I am having one heck of a
time trying to figure out exactly how to parse this.  I am reading with the
HID1_11 spec on my knee at all times, but I swear, I have never seen such a
poorly written document!  I am having a terrible time trying to figure out
the actual scope of each statement, which refers to what.  I don't run any
piece of Windows stuff here, so many of the pieces of demo software I have
found on the web do me no good.

I'm not giving up, I keep on making new discoveries, but if anyone knows of
a description of HID that involves some real use of English, I sure would
appreciate a pointer to it.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHsyipz62J6PPcoOkRAk1iAJ0QiueTV+eASLvpdmplR1WkR2mYVACglFCS
XTXcjiijqGKx33go/Vways8=
=bUwO
-----END PGP SIGNATURE-----
_______________________________________________
[hidden email] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[hidden email]"
Reply | Threaded
Open this post in threaded view
|

Re: getting my new graphic tablet cooperating with gimp

Markus Brueffer-2
Am Mittwoch, 13. Februar 2008 18:28:09 schrieb Chuck Robey:

> Torfinn Ingolfsen wrote:
> > On Sun, 10 Feb 2008 18:10:52 +0100
> >
> > Kai Wang <[hidden email]> wrote:
> >> On Sat, Feb 09, 2008 at 05:27:55PM -0500, Chuck Robey wrote:
> >>> I have a nice new UC-Logic WP8060-TAB08, sometimes called the
> >>> Superpen, and I want to get it working so's I can make fine art
> >>> with it (yeah, I'm a dreamer, so what else is new, hey?)  The
> >>> return off of dmesg is:
> >>>
> >>> ums0: <UC-LOGIC Tablet WP8060U, class 0/0, rev 1.10/0.00, addr 2>
> >>> on uhub0 ums0: X report 0x0002 not supported
> >>> device_attach: ums0 attach returned 6
> >>
> >> This is because your tablet use absolute coordinates (most tablets do)
> >> while ums(4) currently only support relative ones.
> >>
> >> Could you please try to dump your pen's report descriptor and paste it
> >> here, thus we can have more infomation?
>
> I appreciate the extra information.  In fact, I am having one heck of a
> time trying to figure out exactly how to parse this.  I am reading with the
> HID1_11 spec on my knee at all times, but I swear, I have never seen such a
> poorly written document!
It's not _that_ bad, but it surely lacks several clarifications in some areas
and some information on specific topics is scattered across the whole
document.

Best thing to get started is IMHO to get an idea about what reports are and to
get the raw report descriptor of a simple device (e.g. a mouse if it's not
from a keyboard/mouse combo) and start decoding it by hand. The sources of
the libusbhid parser might be of help as well, although it contains several
bugs and isn't spec compliant in several cases, but it might get you an idea
of what's going on. Furthermore playing with usbhidctl might be of help.

I have written a completly new fully spec compliant HID parser which is soon
ready for public consumption as part of a new libhid. It contains many
comments and should be easy to understand. The data representation directly
takes the tree-like structure of a decoded report descriptor into account so
that it's easy to write drivers that only handle one or more specific
application collections. Furthermore physical descriptors are supported and
the data handling functions hide the concept of report IDs so that it's less
error prone to develop HID drivers (ums(4) e.g. doesn't support reports other
than report 0 which is the reason that many of todays mice don't work). The
parser itself will hopefully replace our current in-kernel HID parser.

> I am having a terrible time trying to figure out
> the actual scope of each statement, which refers to what.  I don't run any
> piece of Windows stuff here, so many of the pieces of demo software I have
> found on the web do me no good.

I didn't find any windows software that really made it easier to understand
the spec. It's IMHO easier to directly get your hands dirty and to read the
code of an HID parser.

> I'm not giving up, I keep on making new discoveries, but if anyone knows of
> a description of HID that involves some real use of English, I sure would
> appreciate a pointer to it.

If you have any specific questions, please drop me a mail.

Markus

signature.asc (194 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: getting my new graphic tablet cooperating with gimp

Chuck Robey
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Markus Brueffer wrote:
>> I appreciate the extra information.  In fact, I am having one heck of a
>> time trying to figure out exactly how to parse this.  I am reading with the
>> HID1_11 spec on my knee at all times, but I swear, I have never seen such a
>> poorly written document!
>
> It's not _that_ bad, but it surely lacks several clarifications in some areas
> and some information on specific topics is scattered across the whole
> document.

Maybe I'm not used to the style, but reading this reminds me of the first
few times I plowed my way thru the sgml spec, before I finally realized
those guys weren't trying to get anything done, they were trying only to
lay a foundation for a foundation for a way to get things done.  Getting
past that was difficult, and I find specific sections of the usbhid spec
just as difficult.  There is little or no linkage between the sections that
describe features, and the sections that demonstrate how to use those
features.  As one example (which I think I've finally figured out), section
4.2 (Subclass), the subparagraph below that titled ""Subclass Codes" uses
the term (in italics) of bInterfaceSubClass.  It describes one usagfe where
it would be zero (0), but doesn't bother to say  what the other use would
be, nor give any example of what context you'd want to use this statement.

I've written specs myself, but never one that did such a great job of
obfuscation.  I doubt, strongly, that any of you could do as badly (unless
you were going thru perhaps 3 levels of language translation, that would do
it).  Anyhow, that's the reason why I am not yet finished in figuring out
the parsing of my own unit's config dump.

>
> Best thing to get started is IMHO to get an idea about what reports are and to
> get the raw report descriptor of a simple device (e.g. a mouse if it's not
> from a keyboard/mouse combo) and start decoding it by hand. The sources of
> the libusbhid parser might be of help as well, although it contains several
> bugs and isn't spec compliant in several cases, but it might get you an idea
> of what's going on. Furthermore playing with usbhidctl might be of help.
>
> I have written a completly new fully spec compliant HID parser which is soon
> ready for public consumption as part of a new libhid. It contains many
> comments and should be easy to understand. The data representation directly
> takes the tree-like structure of a decoded report descriptor into account so
> that it's easy to write drivers that only handle one or more specific
> application collections. Furthermore physical descriptors are supported and
> the data handling functions hide the concept of report IDs so that it's less
> error prone to develop HID drivers (ums(4) e.g. doesn't support reports other
> than report 0 which is the reason that many of todays mice don't work). The
> parser itself will hopefully replace our current in-kernel HID parser.
>

OK, couple more questions: would the state of your new libhid be far enough
along that it might be possible for me to study it?  If it were, could I
get a copy, if I agreed that you are giving me the copy for study only,
that I'm not to release it anywhere myself?

Another thing, is there any  way, beyond my forcing the action in patched
code, to get the uhid driver to claim my device?  I mean, some system
configuration method to force this, like it used to be possible back a long
time ago in the old usbd.conf?  I might be able to figure some things out,
if I could experiment with usbhidctl, if I could use it thru uhid.

>> I am having a terrible time trying to figure out
>> the actual scope of each statement, which refers to what.  I don't run any
>> piece of Windows stuff here, so many of the pieces of demo software I have
>> found on the web do me no good.
>
> I didn't find any windows software that really made it easier to understand
> the spec. It's IMHO easier to directly get your hands dirty and to read the
> code of an HID parser.

You;'re going to tell me it's easier to read the code than read the spec,
and in the same breath tell me that the spec isn't so badly written?

>
>> I'm not giving up, I keep on making new discoveries, but if anyone knows of
>> a description of HID that involves some real use of English, I sure would
>> appreciate a pointer to it.
>
> If you have any specific questions, please drop me a mail.

Look, I'll be honest, I'm kinda embarrassed at the level questions I need
answered, I'm probagbly not going to ask them here on the mail list.  If I
were to start up a usbhid channel on freenode, anyone might come up there
and answer questions?

If not, don't worry, I'm going to keep at this until I di understand it,
I'm rather stubborn.

>
> Markus

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHtJU0z62J6PPcoOkRAsT9AJ4v2ORqxbo3KyuzDMtf3jKTWUKn0QCfbPlR
burjy7Hn8MkMVmHJWTQPrq8=
=SAdg
-----END PGP SIGNATURE-----
_______________________________________________
[hidden email] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[hidden email]"
Reply | Threaded
Open this post in threaded view
|

Found: a BETTER Hid Usage spec

Chuck Robey
In reply to this post by Markus Brueffer-2
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

You folks by now are pretty well tired of listening to me bitch about that
horrible HID1_11 spec.  It's the one that Kai pointed me at, and I have
been searching the web ever since, trying to find some other spec written
by someone who honestly wanted to explain things, not just confuse the heck
out of me,  Well, I foound one.  I'm not really able to say that all you
folks will all think as I do, that's it's one heck of a big jump forward,
but maybe some of you would also benefit, so I'm going to post the URL
here, and I do hope that some of you actually like this:

http://www.usb.org/developers/devclass_docs/Hut1_11.pdf

I know, the name is nearly the same as the other one, but I checked, the
two specs are night and day different, it's not just me having some
flashback from the acid days.  I do hope that some of   you read and enjoy
this thing.

God knows I needed this!
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHtK0Fz62J6PPcoOkRAuNoAJ41UAW8+RgIphl2M7/VFKKPk1qHRgCePF44
BnQgnqGWRrw+4e30AOd3YUo=
=G3Qq
-----END PGP SIGNATURE-----
_______________________________________________
[hidden email] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[hidden email]"
Reply | Threaded
Open this post in threaded view
|

Re: getting my new graphic tablet cooperating with gimp

Markus Brueffer-2
In reply to this post by Chuck Robey
Am Donnerstag, 14. Februar 2008 20:23:32 schrieb Chuck Robey:

> Markus Brueffer wrote:
> >> I appreciate the extra information.  In fact, I am having one heck of a
> >> time trying to figure out exactly how to parse this.  I am reading with
> >> the HID1_11 spec on my knee at all times, but I swear, I have never seen
> >> such a poorly written document!
> >
> > It's not _that_ bad, but it surely lacks several clarifications in some
> > areas and some information on specific topics is scattered across the
> > whole document.
>
> Maybe I'm not used to the style, but reading this reminds me of the first
> few times I plowed my way thru the sgml spec, before I finally realized
> those guys weren't trying to get anything done, they were trying only to
> lay a foundation for a foundation for a way to get things done.  Getting
> past that was difficult, and I find specific sections of the usbhid spec
> just as difficult.  There is little or no linkage between the sections that
> describe features, and the sections that demonstrate how to use those
> features.  As one example (which I think I've finally figured out), section
> 4.2 (Subclass), the subparagraph below that titled ""Subclass Codes" uses
> the term (in italics) of bInterfaceSubClass.  It describes one usagfe where
> it would be zero (0), but doesn't bother to say  what the other use would
> be, nor give any example of what context you'd want to use this statement.
There are currently only 2 types of subclasses for HID devices: no subclass
(0) and boot interface subclass (1). Mice or keyboards e.g. can choose to
implement 2 modes: boot mode and report mode. In boot mode, the data that the
mouse returns is layed out in a specific way (described in appendix B), which
is always the same, so there is no need to implement a full fledged HID
report descriptor parser. This is especially usefull in very early boot
stages like for the BIOS. When the system loads the operating system, the
mouse gets switched into report mode and all features are available from that
point.

For the meaning of an "Interface" you should have a look at the USB spec
itself, expecially how usb devices are made up w.r.t. the different
descriptors and what they mean.

> I've written specs myself, but never one that did such a great job of
> obfuscation.  I doubt, strongly, that any of you could do as badly (unless
> you were going thru perhaps 3 levels of language translation, that would do
> it).  Anyhow, that's the reason why I am not yet finished in figuring out
> the parsing of my own unit's config dump.
>
> > Best thing to get started is IMHO to get an idea about what reports are
> > and to get the raw report descriptor of a simple device (e.g. a mouse if
> > it's not from a keyboard/mouse combo) and start decoding it by hand. The
> > sources of the libusbhid parser might be of help as well, although it
> > contains several bugs and isn't spec compliant in several cases, but it
> > might get you an idea of what's going on. Furthermore playing with
> > usbhidctl might be of help.
> >
> > I have written a completly new fully spec compliant HID parser which is
> > soon ready for public consumption as part of a new libhid. It contains
> > many comments and should be easy to understand. The data representation
> > directly takes the tree-like structure of a decoded report descriptor
> > into account so that it's easy to write drivers that only handle one or
> > more specific application collections. Furthermore physical descriptors
> > are supported and the data handling functions hide the concept of report
> > IDs so that it's less error prone to develop HID drivers (ums(4) e.g.
> > doesn't support reports other than report 0 which is the reason that many
> > of todays mice don't work). The parser itself will hopefully replace our
> > current in-kernel HID parser.
>
> OK, couple more questions: would the state of your new libhid be far enough
> along that it might be possible for me to study it?  If it were, could I
> get a copy, if I agreed that you are giving me the copy for study only,
> that I'm not to release it anywhere myself?
Nope, not yet, as there are some parts still in flux. Additionally some
documentation is still missing, especially documentation for the tree itself,
that is being built by the parser. I'll send you a copy as soon as it's
ready.

> Another thing, is there any  way, beyond my forcing the action in patched
> code, to get the uhid driver to claim my device?  I mean, some system
> configuration method to force this, like it used to be possible back a long
> time ago in the old usbd.conf?  I might be able to figure some things out,
> if I could experiment with usbhidctl, if I could use it thru uhid.

Not that I know of. But getting uhid(4) to recognize the device is actually
quite easy. Please send me the output of udesc_dump (sysutils/udesc_dump in
ports) for that device and I'll send you a patch.

> >> I am having a terrible time trying to figure out
> >> the actual scope of each statement, which refers to what.  I don't run
> >> any piece of Windows stuff here, so many of the pieces of demo software
> >> I have found on the web do me no good.
> >
> > I didn't find any windows software that really made it easier to
> > understand the spec. It's IMHO easier to directly get your hands dirty
> > and to read the code of an HID parser.
>
> You;'re going to tell me it's easier to read the code than read the spec,
> and in the same breath tell me that the spec isn't so badly written?
You should have a look at the code with the spec at hand of course.

> >> I'm not giving up, I keep on making new discoveries, but if anyone knows
> >> of a description of HID that involves some real use of English, I sure
> >> would appreciate a pointer to it.
> >
> > If you have any specific questions, please drop me a mail.
>
> Look, I'll be honest, I'm kinda embarrassed at the level questions I need
> answered, I'm probagbly not going to ask them here on the mail list.  If I
> were to start up a usbhid channel on freenode, anyone might come up there
> and answer questions?
Sure (actually I joined that channel on friday, but unfortunately you were
afk).

Markus

signature.asc (194 bytes) Download Attachment