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