#158 Can't change PressCurve in Lenovo X200 TabletPC


It looks like changing PressCurve vis xsetwacom doesn't seem to work with Lenovo X200 TabletPC. Changing PressCurve reports change with no error, but it doesn't take effect (checked in Inkscape, Gimp and xournal). It works OK on PC with Wacom Intuos3 though.
Tablet-apps (http://alexmac.cc/tablet-apps/) shows straight line (reflecting "0 0 100 100" settings I guess) in presscurve linear chart and no vector handles to change.

It's on Ubuntu 10.04 Lucid 32bit (also occurs on LiveCD). My PC is on 64bit Lucid - don't know if it's relevant.
- kernel 2.6.32-22-generic (and default one on Ubuntu Lucid 10.04 LiveCD)
- X Server 1.8.1 (and the default one on LiveCD)
- xserver-xorg-input-wacom 0.10.5

I didn't enter any xorg.conf entries relevant to tablet


  • Anonymous

    I forgot to mention - although xsetwacom shows default PressCurve at 0 0 100 100 on the TabletPC, the stylus feels like it's something around 0 0 10 100 (in other words, it goes to max pressure too quickly).

    Lenovo X200 tabletPC is Serial Tablet I guess (xsetwacom list shows "Serial Wacom Tablet (...)" device names).

  • I tried to fix this by building the next version of xf86-input-wacom (10.6), since I thought maybe the "Support new serial ISDv4 Tablet PCs" update in the linuxwacom version 8.6.2 might fix it, and hoping that the support in linuxwacom would extend to the xf86-input-wacom driver because my xorg is too new for linuxwacom. This did not seem to fix the problem. Could a lack of ISDv4 support cause this?


  • Anonymous

    I tried git version. Now stylus tip, eraser and side button don't do anything, and I can't change PressCurve at all since stylus don't show any pressure (ex. it don't draw anything in xournal/gimp).

    Is there are easy way to back to Lucid version of wacom driver (or better: switch from one to git and vice versa for testing)?

    Aside from that: touchscreen got totaly uncalibrated (like the lower right corner of the screen was way of the actual screen edge). The good thing is that touch screen leaves mouse pointer in place after touching while screen is rotated (this was another issue - not related)


  • Anonymous

    ok - nevermind - I got previous version simply by reinstalling wacom from repo.

  • Hi Favux,

    Thanks for your reply!

    I tried the 0.10.7 driver first. It works, but it does not fix the excessive sensitivity that ignores xsetwacom PressCurve settings. I then tried the git repository that you mentioned. That does not work at all, as ODDie mentioned. The devices are recognized by xinput --list and xsetwacom --list, but the cursor does not move in response to the stylus. There are several errors in /var/log/Xorg.0.log whenever any sort of tablet input event occurs. Here's a few example lines:

    (WW) Serial Wacom Tablet stylus: bad data at 3 v=a0 l=9
    (WW) Serial Wacom Tablet stylus: bad data at 2 v=8c l=9
    (WW) Serial Wacom Tablet stylus: bad data at 3 v=b0 l=9
    (WW) Serial Wacom Tablet stylus: bad data at 2 v=f0 l=9
    (WW) Serial Wacom Tablet stylus: bad data at 2 v=8c l=9
    (WW) Serial Wacom Tablet stylus: bad data at 3 v=b0 l=9

    Any other ideas to try? Can I provide any other log files that might help?

  • Favux


    With the latest updated git repository the "serial-rework" branch was merged (6-25-10). With that branch I believe "Force" ISD4 has been dropped. You might want to try commenting that out in the wacom.conf and see what happens.

    I want to point out that happened the day after I posted, ie don't blame me. : )

  • M Sarahan
    M Sarahan

    Hi, I'm the nobody who's been posting.

    Removing the ForceISDV4 option in my 10-wacom.conf file did not change the behavior. =(

    Any other ideas?

  • Peter Hutterer
    Peter Hutterer

    we've had some issues with serial devices for the last release or two. 0.10.8 should fix this and it's just around the corner. that should get rid of the warnings anyway.

    pressure curve - could have been the buildup of relative pressure though I think the tablet is by default in absolute mode. Can you post the xinput --test output for this device for the pressure data?


  • Anonymous

    xinput test "Serial Wacom Tablet" shows alooot lines like this:
    motion a[0]=12707 a[1]=8826 a[2]=127 a[3]=0 a[4]=0 a[5]=0

    As far as I can tell, a[2] value is the pressure. It goes from 0 (no pressure) to 127 (max pressure) pretty "early" when I start pushing the stylus.
    And it doesn't seem to change behavior when I try to change PressCurve via xsetwacom

    On my PC, Wacom intuos3 6x8 shows values between 0 and 1023 (max pressure), and to get max pressure in Intuos, I have to push the stylus pretty hard.
    To get max value on x200 TabletPC I have to push maybe half as hard at most.

    Oh, and changing PressCurve in PC w/ Intuos3 doesn't seem to change xinput test values either - but it changes the feeling of presscurve in apps (xournal, gimp and so on), so I guess xinput test shows some "generic" values from driver or something.


  • Anonymous

    I've compiled 0.10.10 version of xf86-input-wacom recently on Ubuntu Lucid 32bit and problem with pressure still occurs, but now, xinput --test gives 0-2048 values of pressure. Intuos3 connected to TabletPC works correctly.

  • Chris Bagwell
    Chris Bagwell

    I pretty sure on part of issue in this thread is that serial tablet is reporting maximum threshold of 0..127 values and threshold curve is applied to that range... yet hardware is reporting thresholds from 0..254. So effectively, you'll go to maximum values with only 1/2 pressure applied. This was verified by user on linuxwacom-discuss for an X201 and so I assume same for X200.

    An interesting comment was posted to linuxwacom-discuss about this. Using the isdv4-serial-debugger in xf86-input-wacom, a user noticed that at baud rates of 19200 the serial tablet reports maximum threshold of 127 but at baud rate of 38400 it reports maximum threshold of 254.

    I notice that if tablet model is not detected well, it defaults to requesting 19200 baud rate. This could be reporting a serial name of WACf00 to WACf07 which would result in 19200 rate.

    This can be overcome in config files to force to 38400 and probably PressureCurve starts working as expected.


  • Anonymous

    Still no go.
    Option BaudRate "38400"
    to /usr/lib/X11/xorg.conf.d/10-wacom.conf in InputClass Sections but this didn't solve the PressCurve problem.

    Additionally, while xserver-xorg-input-wacom 0.10.11 didn't work at all (no devices in xsetwacom list and xinput) //I'm still using 0.10.5 on Ubuntu Lucid//, I fired up LiveUSB of Ubuntu Natty 11.04 Alpha3 which has input-wacom 0.10.11 on board and pen/touch worked fine but still, PressCurve bug is there.
    I'll try to add BaudRate to LiveUSB wacom config file and see if it does anything.


  • Anonymous

    Adding BaudRate on LiveUSB Natty did nothing.
    Note: xinput test .. shows 2048 steps of pressure on Natty, and as (not)expected, it goes to max value way to early.

  • Chris Bagwell
    Chris Bagwell

    OK. The baudrate fix also also been confirmed NOT to work on mailing list. The tablet responses are unstable at higher baudrate.

    Another simple option is to set the MaxZ parameter in config file to 254. This is untested but I think it should work. Hopefully, the hardware doesn't send pressure report after processing config file and discard MaxZ option.


  • Anonymous

    @cbagwell: man, you rock! :-) MaxZ trick works! I've been looking for solution for a year now (since I got this Lenovo X200 tablet) and here it is! Big thanks!

    Should we consider this bug as closed or it should wait to be somehow resolved in driver code? (I'm not a coder unfortunately)


  • Anonymous

    As cbagwell suggested in comment, setting MaxZ value to 254 in config file worked. Pressure is now adequate and changing PressCurve works as expected.

  • Chris Bagwell
    Chris Bagwell

    Lets leave it open for a whlie longer. I'm working on a patch to at least give hints in Xorg.log file to user to try MaxZ option.

  • Umdee

    Hi all,

    As mentioned, this bug affects both X200 and X201 tablets. I can confirm that adjusting "MaxZ" resolves this issue with the X201 tablet. The change can be made by adding the following line to the section with the identifier "Wacom serial class" in the 50-wacom.conf file (path=/usr/share/X11/xorg.conf.d/50-wacom.conf):

    Option "MaxZ" "N"

    Replace N with the maximum pressure level for the tablet. The X201 tablet should have 256 levels of pressure sensitivity. Comments by previous posters indicate that a value of 254 gives satisfactory results. However, I wanted to perform a simple empirical test to estimate the actual pressure range of my digitizer.

    I went into Gimp and selected a black circle brush, setting pressure to modulate opacity. Then, I applied excessive pressure to the stylus to max out the pressure level of the digitzer. Using the color picker, I was able to check the value of my mark. For MaxZ <= MaxZ_actual, where MaxZ_actual is the true maximum of pressure for the digitizer, the mark should have a value equal to zero (pure black). However, for MaxZ > MaxZ_actual, the mark will not be completely opaque, for MaxZ is outside of the range of the digitizer. This means that on a white background the mark will have a higher value than zero (more white). I performed this test using three values for MaxZ above 254 to characterize value as a function of pressure. Here's my data:

    MaxZ_1 = 285 , MaxValue_1 = 11
    MaxZ_2 = 300 , MaxValue_2 = 22
    MaxZ_3 = 315 , MaxValue_3 = 33

    These data represent a linear function. Performing a simple linear extrapolation, it is clear than my digitizer maxes out at a MaxZ equal to 270. Therefore, my pressure was maxing out too soon with a MaxZ equal to 254.

    I hope this provides some insight into estimating the pressure range of your own digitizer. Maybe, a MaxZ equal to 270 is ideal for all X201 tablets. Maybe, it's just a slight variation in my own.