#195 Wrong pressure in Bamboo Pen

closed
nobody
USB Tablet (38)
2015-12-04
2011-06-08
No

Tablet: Bamboo Pen only (not touch) CTL460L
OS: Ubuntu 11.04 (Natty)
Driver: xf86-input-wacom git repo (also tried 0.11.1 tar)

The pressure goes from almost none to max abruptly. See the brush stroke I did with MyPaint. I tried to change the PressureCurve with xsetwacom without success. Other tablets work out of the box in the same system: an old Wacom Graphire 3 and a Bamboo Fun.

lichu@lichu-pc:~$ uname -a
Linux lichu-pc 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011 i686 athlon i386 GNU/Linux

lichu@lichu-pc:~$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Genius NetScroll + Traveler id=8 [slave pointer (2)]
⎜ ↳ Wacom Bamboo Pen Finger touch id=10 [slave pointer (2)]
⎜ ↳ Wacom Bamboo Pen Finger pad id=11 [slave pointer (2)]
⎜ ↳ Wacom Bamboo Pen Pen stylus id=12 [slave pointer (2)]
⎜ ↳ Wacom Bamboo Pen Pen eraser id=13 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=9 [slave keyboard (3)]

lichu@lichu-pc:~$ lsusb
Bus 005 Device 002: ID 056a:00d4 Wacom Co., Ltd
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 0458:002e KYE Systems Corp. (Mouse Systems)
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

lichu@lichu-pc:~$ lsmod | grep wacom
wacom 41292 0

lichu@lichu-pc:~$ Xorg -version

X.Org X Server 1.10.1
Release Date: 2011-04-15
X Protocol Version 11, Revision 0
Build Operating System: Linux 2.6.24-27-server i686 Ubuntu
Current Operating System: Linux lichu-pc 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011 i686
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-2.6.38-8-generic root=UUID=19508634-afe4-416a-a602-ebaaddd5e671 ro quiet splash vt.handoff=7
Build Date: 21 May 2011 11:38:35AM
xorg-server 2:1.10.1-1ubuntu1.1 (For technical support please see http://www.ubuntu.com/support\)
Current version of pixman: 0.20.2
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.

Discussion

  • Manuel Quiñones

    • labels: --> USB Tablet
     
  • BigHodor

    BigHodor - 2011-06-20

    I have the same problem. Pressure sensitivity is way too high.

    Tablet: Bamboo Pen (CTL-460/K)
    OS: Fedora 15 x86_64 (2.6.38.8-32.fc15.x86_64)
    X11 driver: 0.11.0 (xorg-x11-drv-wacom-0.11.0-1.fc15.x86_64)
    xinput --list:
    ⎡ Virtual core pointer id=2 [master pointer (3)]
    ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
    ⎜ ↳ A4Tech USB Mouse id=9 [slave pointer (2)]
    ⎜ ↳ SynPS/2 Synaptics TouchPad id=12 [slave pointer (2)]
    ⎜ ↳ Wacom Bamboo Pen Pen stylus id=14 [slave pointer (2)]
    ⎜ ↳ Wacom Bamboo Pen Pen eraser id=15 [slave pointer (2)]
    ⎜ ↳ Wacom Bamboo Pen Finger touch id=16 [slave pointer (2)]
    ⎜ ↳ Wacom Bamboo Pen Finger pad id=17 [slave pointer (2)]
    ⎣ Virtual core keyboard id=3 [master keyboard (2)]
    ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
    ↳ Power Button id=6 [slave keyboard (3)]
    ↳ Video Bus id=7 [slave keyboard (3)]
    ↳ Sleep Button id=8 [slave keyboard (3)]
    ↳ HP Webcam [2 MP Fixed] id=10 [slave keyboard (3)]
    ↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
    ↳ HP WMI hotkeys id=13 [slave keyboard (3)]

    lsusb:
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
    Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
    Bus 001 Device 003: ID 09da:000a A4 Tech Co., Ltd Port Mouse
    Bus 001 Device 004: ID 05c8:0403 Cheng Uei Precision Industry Co., Ltd (Foxlink)
    Bus 002 Device 003: ID 148f:1000 Ralink Technology, Corp.
    Bus 002 Device 004: ID 056a:00d4 Wacom Co., Ltd

    X.Org X Server 1.10.2
    Release Date: 2011-05-28
    X Protocol Version 11, Revision 0
    Build Operating System: x86-06 2.6.32-71.14.1.el6.x86_64
    Current Operating System: Linux filprobook 2.6.38.8-32.fc15.x86_64 #1 SMP Mon Jun 13 19:49:05 UTC 2011 x86_64
    Kernel command line: ro root=UUID=a77dc28d-bb16-426f-8cc1-40d578d1a3cd rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us
    Build Date: 30 May 2011 12:42:58AM
    Build ID: xorg-x11-server 1.10.2-1.fc15
    Current version of pixman: 0.20.2

    xsetwacom works correctly - I can set "Area" to have it match my screen's aspect ratio (1366/768) *and* I can also change the pressure curve - but it doesn't help much. Though I can feel the difference in response characteristic, the tablet reports full pressure far too soon. As if perhaps something, somewhere, normalized/clamped it incorrectly.

    The same tablet works just fine under Vista (I even increased the pressure sensitivity a bit there, on def. settings I had to scratch really hard to make full opacity strokes). I'm using GIMP 2.6.11 under both Windows and Fedora.

     
  • Manuel Quiñones

    bighodor, exactly, you described the issue very well.

    One more information: my tablet is Bamboo Pen only, but it seems to be recognized as touch also:

    lichu@lichu-pc:~$ xsetwacom list
    Wacom Bamboo Pen Finger touch id: 10 type: TOUCH
    Wacom Bamboo Pen Finger pad id: 11 type: PAD
    Wacom Bamboo Pen Pen stylus id: 12 type: STYLUS
    Wacom Bamboo Pen Pen eraser id: 13 type: ERASER

     
  • Favux

    Favux - 2011-06-23

    I think this a problem with a commit in the 0.10.10+ tree and so affects 0.10.11 and later.

    I believe the Bamboo Pen has 512 pressure levels but it is being set as having only 256 levels like a tablet PC.

    Could you check in your Xorg.0.log in /var/log and confirm if you are seeing a line similar to:

    [ 54234.772] (--) Wacom Bamboo Pen Pen stylus: Wacom USB Bamboo tablet maxX=14720 maxY=9200 maxZ=255 resX=100000 resY=100000 tilt=disabled

    Where maxZ is 255 instead of 511.

     
  • Favux

    Favux - 2011-06-23

    I believe I found the problem. It appears to be in the 2.6.38 kernel's wacom_wac.c. It is setting pressure level to 255:

    static const struct wacom_features wacom_features_0xD4 =
    { "Wacom Bamboo Pen", WACOM_PKGLEN_BBFUN, 14720, 9200, 255, 63, BAMBOO_PT };

    rather than 511 like it should:

    static const struct wacom_features wacom_features_0xD4 =
    { "Wacom Bamboo Pen", WACOM_PKGLEN_BBFUN, 14720, 9200, 511, 63, BAMBOO_PT };

    What you could do is use the input-wacom wacom.ko. That seems to have the pressure level for the Pen wrong also, but the in the other direction, i.e. 1023. And apparently things work OK for the Pen with pressure levels set to 1023.

     
  • Favux

    Favux - 2011-06-23

    Hmmm. The Wacom site specification for the Pen may be wrong and 1023 is correct rather than the 511 levels it states. theconartist on Ubuntu forums says hardcoding 511 still cuts off pressure while everything is good with 1023.

     
  • Manuel Quiñones

    Thank you very much favux for your insightful review!

    Yes I can confirm that I have pressure maxZ=255 in Xorg.0.log:

    [ 228.668] (--) Wacom Bamboo Pen Pen stylus: Wacom USB Bamboo tablet maxX=14720 maxY=9200 maxZ=255 resX=100000 resY=100000 tilt=disabled

    So I will follow your suggestions on using input-wacom wacom.ko and then come back and comment how it was.

    Thanks!

     
  • Manuel Quiñones

    • status: open --> open-postponed
     
  • Manuel Quiñones

    Solved with input-wacom yeah!

    I got the source from git, compiled, and then copied the wacom.ko as the install instructions say.

    After that I did depmod -a but nothing happened, so I restarted my computer and then confirmed that Xorg.0.log has a line with maxZ=1023 .

    Thankyou very much favux.

     
  • Graeme

    Graeme - 2011-10-01

    me too.

    I'd tracked down the bug to the self same line and am in the process of rebuilding now. This is an exact match for my issues, both symptoms and the

    Bus 002 Device 004: ID 056a:00d4 Wacom Co., Ltd

    So I have a couple (3) of questions:

    1: How did you discover this called the CTL460L ? ... I can't see that name anywhere
    2: My xsetwacom list results in NULL (I seem to recall it working in the past as I played with pressure curve)
    3: Various folks talk about an X driver xf86-input-wacom ... where does this fit into the picture

     
  • Graeme

    Graeme - 2011-10-01

    Possibly I've missed a point here. I'm looking at source in :

    linux-2.6.38/drivers/input/tablet

    e.g. wacom.mod.c wacom_sys.c wacom_wac.c

     
  • Favux

    Favux - 2011-10-01

    The bug (wrong value) is in wacom_wac.c. AFAIK you should be able to compile input-wacom-0.11.1 and have the fix.

    For a usb tablet there are two Wacom drivers you are concerned with. The usb kernel driver wacom.ko (the files you list are components). Input-wacom is a backport of the kernel's wacom.ko, see the developer page on the mediawiki. And the X driver xf86-input-wacom.

    The model name is on a sticker on the bottom side of the tablet. Xinput list won't have the tablet if the drivers aren't picking up the tablet or if your 50-wacom.conf isn't matching the tablet.

     
  • Graeme

    Graeme - 2011-10-01

    Turn the pad over and read the label (RTFL?) dooh ... so yes it says: CTL-460/K

    So I'm running Ubuntu 11.04 (Natty) with 2.6.38-11-generic kernel. Looking at the mediawiki:

    Linux Kernel Download
    2.6.37 - CURRENT Please update through your distribution.
    2.6.26 - 2.6.36 input-wacom
    2.6.16 - 2.6.25 linuxwacom

    So I should use the synaptic provided version:

    This is : xserver-xorg-input-wacom
    and includes (among others):

    /lib/udev/rules.d/69-xserver-xorg-input-wacom.rules
    /usr/bin/xsetwacom
    /usr/lib/xorg/modules/input/wacom_drv.so
    /usr/share/X11/xorg.conf.d/50-wacom.conf
    # Convenience links for the common case of a single tablet. We could do just this:
    #ATTRS{idVendor}=="056a", SYMLINK+="input/wacom-$env{WACOM_TYPE}"
    # but for legacy reasons, we keep the input/wacom link as the generic stylus device.
    ATTRS{idVendor}=="056a", ENV{WACOM_TYPE}!="touch", SYMLINK+="input/wacom"
    ATTRS{idVendor}=="056a", ENV{WACOM_TYPE}=="touch", SYMLINK+="input/wacom-touch"

    (so I need to track down the source of wacom_drv.so to see what happens WRT the X side of things.)

    So I have a kernel module witch recognises my device (abet with wrong Zmax aka pressure)
    I have a udev rule which matches , abet with the generic rule not a specific one...
    ..so xsetwacom should see this?

    I edited 50-wacom.conf:

    Identifier "Wacom class"
    # WALTOP needs a patched kernel driver, that isn't in mainline lk yet,
    # so for now just let it fall through and be picked up by evdev instead.
    # MatchProduct "Wacom|WALTOP|WACOM"
    MatchProduct "Wacom|WACOM|Hanwang"
    #GPV 9sep2011 MatchDevicePath "/dev/input/event*"
    MatchDevicePath "/dev/input/wacom"
    Driver "wacom"
    EndSection

    (the device and link do get created)

    So I think (as you say) the pressure setting is just wacom_wac.c. ... but I was concerned a similar mistake was made in
    the X driver (which I've not got the source of ...yet) so I took a look at: xf86-input-wacom-0.11.1 it does not seem to have 'pressure' in table but it does look like the table is wrong: wcmUSB.c

    { WACOM_VENDOR_ID, 0xD1, 100000, 100000, &usbBamboo }, /* CTL-460 */
    { WACOM_VENDOR_ID, 0xD4, 100000, 100000, &usbBamboo }, /* CTH-461 */
    { WACOM_VENDOR_ID, 0xD3, 100000, 100000, &usbBamboo }, /* CTL-660 */

    0xD4 is the CTL-460 is it not?

     
  • Favux

    Favux - 2011-10-01

    Sorry, I should have given you the link to the BambooPT HOW TO since you are using Ubuntu: http://ubuntuforums.org/showthread.php?t=1515562

    You want to update the kernel module wacom.ko using input-wacom-0.11.1 which is part I. That should fix it. You also may want to update xf86-input-wacom, which contains the X driver, by cloning the git repository. Ubuntu calls the xf86-input-wacom package xserver-xorg-input-wacom. Instructions are in part II. c).

    You don't need to change in the wacom.conf event* to wacom. Because event* will match. Since Ubuntu includes the wacom symlink that works too, but you can't guarantee all Distros will have tha symlink in their udev rules.

    Good catch in wcmUSB.c. That does look like a mislabel. But that won't have a functional effect. I'll look at the latest git. Maybe it got mislabeled with the resolution changes or it always was. I'll submit a patch if needed.

    I believe the 0xD4 is the CTL-460/K. It's clear yours is anyway. That may be partially my fault. I seem to recall thinking the slash letter at the end was a regional distribution designation or something and so wasn't including it. It was only when the new models came out a year later that I realized that different models could be labeled the same, differentiated only by the slash letter designation.

     
  • Graeme

    Graeme - 2011-10-03

    1st apologies to manuq for rather hijacking his thread, I hope it's still useful for others hitting. his original problem.

    I've not yet done as you suggest because I'm a little uneasy about xsetwacom not working and my not understanding why ... then ....

    > You don't need to change in the wacom.conf event* to wacom. Because
    > event* will match. Since Ubuntu includes the wacom symlink that works too,
    > but you can't guarantee all Distros will have tha symlink in their udev
    > rules.

    Ping , light goes on ... I set back my 50-wacom.conf to use

    MatchDevicePath "/dev/input/event*

    And now xsetwacom again works ....

    $ head /usr/share/X11/xorg.conf.d/50-wacom.conf
    Section "InputClass"
    Identifier "Wacom class"
    # WALTOP needs a patched kernel driver, that isn't in mainline lk yet,
    # so for now just let it fall through and be picked up by evdev instead.
    # MatchProduct "Wacom|WALTOP|WACOM"
    MatchProduct "Wacom|WACOM|Hanwang"
    #GPV 9sep2011 MatchDevicePath "/dev/input/event*"
    MatchDevicePath "/dev/input/event*"
    #GPV 2Oct2011 MatchDevicePath "/dev/input/wacom"
    Driver "wacom"

    $ xinput list
    ⎡ Virtual core pointer id=2 [master pointer (3)]
    ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
    ⎜ ↳ Wacom Bamboo Pen Pen eraser id=8 [slave pointer (2)]
    ⎜ ↳ Wacom Bamboo Pen Pen stylus id=9 [slave pointer (2)]
    ⎜ ↳ Wacom Bamboo Pen Finger pad id=10 [slave pointer (2)]
    ⎜ ↳ Wacom Bamboo Pen Finger touch id=11 [slave pointer (2)]
    ⎜ ↳ ImPS/2 Generic Wheel Mouse id=13 [slave pointer (2)]
    ⎣ Virtual core keyboard id=3 [master keyboard (2)]
    ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
    ↳ Power Button id=6 [slave keyboard (3)]
    ↳ Power Button id=7 [slave keyboard (3)]
    ↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]

    $ xsetwacom list
    Wacom Bamboo Pen Pen eraser id: 8 type: ERASER
    Wacom Bamboo Pen Pen stylus id: 9 type: STYLUS
    Wacom Bamboo Pen Finger pad id: 10 type: PAD
    Wacom Bamboo Pen Finger touch id: 11 type: TOUCH

    $ xsetwacom --get "Wacom Bamboo Pen Pen stylus" ToolID
    270

    Now If I set it back to use :

    /dev/input/wacom

    And kill X ...

    $ head /usr/share/X11/xorg.conf.d/50-wacom.conf
    Section "InputClass"
    Identifier "Wacom class"
    # WALTOP needs a patched kernel driver, that isn't in mainline lk yet,
    # so for now just let it fall through and be picked up by evdev instead.
    # MatchProduct "Wacom|WALTOP|WACOM"
    MatchProduct "Wacom|WACOM|Hanwang"
    #GPV 9sep2011 MatchDevicePath "/dev/input/event*"
    #GPV 2Oct2011 MatchDevicePath "/dev/input/wacom"
    MatchDevicePath "/dev/input/wacom"

    $ xinput list
    ⎡ Virtual core pointer id=2 [master pointer (3)]
    ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
    ⎜ ↳ Wacom Bamboo Pen Pen id=8 [slave pointer (2)]
    ⎜ ↳ Wacom Bamboo Pen Finger id=9 [slave pointer (2)]
    ⎜ ↳ ImPS/2 Generic Wheel Mouse id=11 [slave pointer (2)]
    ⎣ Virtual core keyboard id=3 [master keyboard (2)]
    ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
    ↳ Power Button id=6 [slave keyboard (3)]
    ↳ Power Button id=7 [slave keyboard (3)]
    ↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)]
    $ xsetwacom list
    $ xsetwacom --get "Wacom Bamboo Pen Pen" ToolID
    Property 'Wacom Tool Type' does not exist on device.
    $ xsetwacom --get "Wacom Bamboo Pen Pen stylus" ToolID
    Cannot find device 'Wacom Bamboo Pen Pen stylus'.

    So that /dev/input/event* does more than (immediately) meets the eye .

     
  • Favux

    Favux - 2011-10-03

    Actually a good point graemev2. I misremembered and thought Ubuntu had the first 5 BambooPT's in its wacom.rules. But I recently discovered that Oneiric is using the old "borked" serial ISDV4 rules in there. So I'm preparing a Launchpad bug report on that. Then I realized their rules are apparently from the last update by Ron at Debian, which is over a year and a half ago, and does not have any of the BambooPTs. So I need to try and throw in some of the new models including the BambooPTs. That's around 17 models that aren't in there now. Hopefully they'll go for the update since they are keeping the rules.

    And maybe the updated serial rules will fix some of the strange goings on we see with ISDV4 serial tablet PCs. I'm waiting for a Toshiba user to test them.

     
  • Graeme

    Graeme - 2011-10-04

    Thanks compiled new kernel module .. works well ... may have a go with X driver tomorrow.
    Oddly now while mypaint works well, gimp only lets paintbrush draw spots (cannot maintain paint to produce a line) but I suspect this more a gimp question ... thanks for all the help

     
  • Chris Bagwell

    Chris Bagwell - 2012-01-05
    • status: open-postponed --> pending-fixed
     
  • Chris Bagwell

    Chris Bagwell - 2012-01-05

    This fix is now in both input-wacom and upstream linux (or at least in a release candidate of upstream linux).

     
  • Manuel Quiñones

    Great to cbagwell, thanks!

     
  • Jason Gerecke

    Jason Gerecke - 2013-04-15
    • status: pending-fixed --> closed
    • Group: --> Production
     

Log in to post a comment.