I forgot to copy linuxwacom-discuss on this email.  Here you go.

Chirs

On Sun, May 1, 2011 at 7:56 PM, Chris Bagwell <ch...@cnpbagwell.com> wrote:
> Hey all with newer Bamboo HW,
>
> I'm hoping you can help me capture some raw USB data from these
> devices and I'll compare them to my Bamboo and see if I can figure
> anything out.
>
> Here is some instructions for logging USB packets on most modern linux 
> kernels.
>
> On Fedora, the "usbmon" support is always compiled into kernel so no
> "modprobe usbmon" is needed.  Also, the kernel debug filesystem is
> always mounted so no need to mount either.  In case this isn't true on
> your box, here are command to enable support for logging usb packets:
>
> # mount -t debugfs none_debugs /sys/kernel/debug
> # modprobe usbmon
>
> Next, we need to find out which USB bus your Wacom is on.  Its easiest
> from "lsusb" if you have that installed.  Here is output for mine
> showing it on Bus 2 and Device 35.
>
> Bus 002 Device 035: ID 056a:00d1 Wacom Co., Ltd
>
> You can also get it by running 'less /sys/kernel/debug/usb/devices'
> and looking for Wacom.  The first line shows Bus and Dev#.
>
> T:  Bus=02 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#= 35 Spd=12   MxCh= 0
> D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
> P:  Vendor=056a ProdID=00d1 Rev= 1.06
> S:  Manufacturer=Wacom Co.,Ltd.
> S:  Product=CTH-460
> C:* #Ifs= 2 Cfg#= 1 Atr=80 MxPwr= 98mA
> I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02 Driver=wacom
> E:  Ad=81(I) Atr=03(Int.) MxPS=   9 Ivl=4ms
> I:* If#= 1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=wacom
> E:  Ad=82(I) Atr=03(Int.) MxPS=  64 Ivl=4ms
>
> OK, now we can log some packets.  Here is example I run for logging
> USB packets on my USB Bus 2 (must be ran as root):
>
> #cat /sys/kernel/debug/usb/usbmon/2u > /tmp/usbmon.txt
>
> The "2" of "2u" part needs to match your bus#.
>
> Please log some very small snippets of data and send them my way.  Do
> very little movement or finger combinations to make readable by me.
> I'd appreciate it if you do this sequence:
>
> #cat /sys/kernel/debug/usb/usbmon/2u > /tmp/usbmon-1fg.txt
>
> Press 1 finger in lower right corner of pad (within white lines
> though).  Start with low pressure and slowly move to firm pressure and
> then release.  Control-C to end.  The goal is to get as many 1 finger
> bits set in X/Y/Pressure fields.
>
> #cat /sys/kernel/debug/usb/usbmon/2u > /tmp/usbmon-2fg.txt
>
> Same as previous but use 2 fingers.
>
> #cat /sys/kernel/debug/usb/usbmon/2u > /tmp/usbmon-3fg.txt
>
> Same as previous but use 3 fingers.
>
> #cat /sys/kernel/debug/usb/usbmon/2u > /tmp/usbmon-4fg.txt
>
> Same as previous but use 3 fingers.
>
> Thats it.  For those wanting to attempt debugging, here is an example
> line from my output:
>
> c7a67d00 2310234233 C Ii:2:035:2 0:4 20 = 02002881 e0012e81 e0012a00
> 00000000 81110000
>
> If you have other noisy USB devices on this bus then you may need to
> filter the file.  Here is how you can filter for Bus 2 Dev#35
> interrupt responses:
>
> # grep "C li:2:035:2" /tmp/usbmon-1fg.txt > /tmp/usbmon-1fg-filtered.txt
>
> After the equal sign is the packet sent by Wacom hardware.  Each 2 hex
> numbers represents 8-bit char.  If you treat the whole thing as an
> array, here is mapping used for touch packet of original Bamboo Pen
> and Touch devices:
>
> data[2] = 1st finger pressure
> (data[3] << 8 | data[4]) & 0x7ff = 1st finger X coord
> (data[5] << 8 | data[6]) & 0x7ff = 1st finger Y coord
> data[11] = 2nd finger pressure
> (data[12] << 8 | data[13]) & 0x7ff = 2nd finger X coord
> (data[14] << 8 | data[15]) & 0x7ff = 2nd finger Y coord
>
> So from my example, I touched 1 finger with pressure 0x28 and X/Y =
> [0x81e0,0x012e].
>
> What we are trying to do is isolate the bits/bytes that change when
> you move your fingers and which change when only pressure of your
> finger changes.  In this packet, there is only space comfortably for 2
> fingers.
>
> If this newer hardware can report more than 2 fingers then they must
> have been re-arranging/reducing resolution/squishing things together.
> The pressure is something that makes most since to steal bits from.
> But they could also be sending 2 packets with something in it saying
> this is for fingers 1&2 and this packet is for fingers 3&4.  Dunno how
> they chose to do it.
>
> Chris
>

------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network 
management toolset available today.  Delivers lowest initial 
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to