Some initial feedback on the raw USB data I've received so far.

It looks like the old and new hardware are behaving quite differently.
 The new hardware's packet has room for 4 touches and only 1 of these
X/Y's overlap with the older bamboo I believe.  I'm surprised if users
can actually use it effectively in its current state.

It also looks like the newer hardware doesn't do finger tracking as
strictly as the older hardware.  Meaning that the 1st touch isn't
always in data[3-7] locations.  If you ever notice tablet not
responding its probably because of this.  You'll have to pick up your
finger and try again... maybe even putting down multiple fingers to
cause firmware to restart its finger tracking logic.

Initially, I'm thinking this newer hardware doesn't support pressure
reports for touches anymore... but I'll stare at the logs some more
and see if I can figure out were its hiding.

I'm hoping there is a brave person wanting to start hacking on this.
I can provide some suggested modifications to kernel driver but I
don't have much hope I'll get much done without the hardware myself.

Chris

On Mon, May 2, 2011 at 8:57 AM, Chris Bagwell <ch...@cnpbagwell.com> wrote:
> 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