libwacom icon indicating copy to clipboard operation
libwacom copied to clipboard

Add Dell Pro Premium Active Pen PN7522W

Open luyatshimbalanga opened this issue 1 month ago • 6 comments

  • Device name: Dell Pro Premium Active Pen - PN7522W

  • Device model identifier: AS2201W

  • libwacom version: 2.16.1

  • [x] I understand that libwacom does not affect whether the device works (see Troubleshooting)

Bug description

Dell Pro Premium Active Pen PN7522W is an AES pen with three buttons (2 mappable size and 1 top enabling Bluetooth) supporting both tilt and pressure. It is currently unlisted in the database although fully workable and paired as Dell PN7522W.

Running libwacom-show-stylus command generates the following result:

sudo libwacom-show-stylus 
Using "ELAN3233:00 04F3:42AB Stylus": /dev/input/event7
Using stylus file(s): /usr/share/libwacom/lenovo.stylus, /usr/share/libwacom/wacom.stylus
Tool id 0x0 serial 0x1 in-proximity: True 
^CTerminating
Unknown stylus id 0x0. New entry needed
Suggested line for .tablet file:
Styli=

udevadm info

sudo udevadm info /sys/class/input/event7
Place your finger on the fingerprint reader
P: /devices/platform/AMDI0010:00/i2c-0/i2c-ELAN3233:00/0018:04F3:42AB.0002/in>
M: event7
R: 7
J: c13:71
U: input
D: c 13:71
N: input/event7
L: 0
S: input/by-path/platform-AMDI0010:00-event-mouse
E: DEVPATH=/devices/platform/AMDI0010:00/i2c-0/i2c-ELAN3233:00/0018:04F3:42AB>
E: DEVNAME=/dev/input/event7
E: MAJOR=13
E: MINOR=71
E: SUBSYSTEM=input
E: USEC_INITIALIZED=7001246
E: ID_INPUT=1
E: ID_INPUT_TABLET=1
E: ID_INPUT_WIDTH_MM=300
E: ID_INPUT_HEIGHT_MM=188
E: ID_SERIAL=noserial
E: ID_PATH=platform-AMDI0010:00
E: ID_PATH_TAG=platform-AMDI0010_00
E: LIBINPUT_DEVICE_GROUP=18/4f3/42ab:i2c-ELAN3233:00
E: DEVLINKS=/dev/input/by-path/platform-AMDI0010:00-event-mouse

It will great to update the database but I am unsure how to get the proper ID. Tested on Dell Inspiron 14 7445 convertible

luyatshimbalanga avatar Nov 03 '25 03:11 luyatshimbalanga

Main problem here will be that the stylus id is 0x0 and I suspect any other pen supported by this device will also advertise itself as 0x0 - which means we cannot differentiate between the buttons.

Having said that - two buttons plus the BLE one at the back[^1] is effectively the generic one. I guess we could add an entry for [0x4f3;0x0] that matches the current [0x56a:0x1] entry?

[^1]: the BLE one is usually a separate device and not really handled as part of the same kernel device anyway, it's effectively a different non-tablet device to libwacom.

whot avatar Nov 05 '25 01:11 whot

I confirm the pen is detected as generic-with-eraser once I omit "Styli=" line although essentially an advanced AES pen . Is there a way to alias a generic pen as [0x4f3:0x0] seems refusing taking name and alias well?

[0x4f3:0x0]
Name=Dell Premium Active Pen - PN7522W
AliasOf=0x1

The BLE button shows battery status once paired and support more functions (currently only available on Microsoft Windows)

luyatshimbalanga avatar Nov 06 '25 02:11 luyatshimbalanga

You'll need AliasOf=0x56a:0x1, I think that should work? (edit: :, not ;)

What is likely going to be a problem however is that a tool id of 0x0 will likely be interpreted by everything as "no tool id". I'd have to go through all the pieces in the stack to be sure though, but it's worth a try - if the alias works well enough let's go with that and hope the next tool id dell releases is ... better?

whot avatar Dec 04 '25 05:12 whot

From the libwacom-list-local-devices after update:

libwacom-list-local-devices 
devices:
  - name: 'Dell Inc. Inspiron 14 7445 2-in-1'
    bus: 'i2c'
    vid: 0x04f3
    pid: 0x42ab
    nodes: 
      - /dev/input/event9: 'ELAN3233:00 04F3:42AB Stylus'
    styli:
      - id: 0x0
        vid: 0x04f3
        name: 'Dell Premium Active Pen - PN7522W'
        type: 'mobile'
        axes: ['x', 'y' , 'pressure']
        buttons: 1
        is_eraser: 'true'
        eraser_type: 'button'
      - id: 0x1
        vid: 0x056a
        name: 'AES Pen'
        type: 'mobile'
        axes: ['x', 'y' , 'pressure']
        buttons: 1
        is_eraser: 'true'
        eraser_type: 'button'
    ...

The database reads the name of the pen but GNOME Settings still displays AES pen as below. Image

luyatshimbalanga avatar Dec 04 '25 09:12 luyatshimbalanga

You'll need AliasOf=0x56a:0x1, I think that should work? (edit: :, not ;)

What is likely going to be a problem however is that a tool id of 0x0 will likely be interpreted by everything as "no tool id". I'd have to go through all the pieces in the stack to be sure though, but it's worth a try - if the alias works well enough let's go with that and hope the next tool id dell releases is ... better?

I confirm the pen will still get detected as unknown stylus id 0x0.

Using "ELAN3233:00 04F3:42AB Stylus": /dev/input/event9
Using stylus file(s): /usr/share/libwacom/lenovo.stylus, /usr/share/libwacom/wacom.stylus, /etc/libwacom/wacom.stylus
Tool id 0x0 serial 0x1 in-proximity: False 
^CTerminating
Unknown stylus id 0x0. New entry needed
Suggested line for .tablet file:
Styli=

Unsure why the current tool fails to properly id the stylus. Maybe the Elan type differ from Wacom.

luyatshimbalanga avatar Dec 05 '25 03:12 luyatshimbalanga

The database reads the name of the pen but GNOME Settings still displays AES pen as below.

Actually, this is probably because gnome hasn't yet updated to the newest libwacom APIs that have vendor-specific tools so it interprets it as the wacom-specific ID.

Unsure why the current tool fails to properly id the stylus. Maybe the Elan type differ from Wacom.

probably because of this comment :)

            # FIXME: vendor should be used here, let's do that when we figure out
            # who needs it.

which in the end is basically the same problem as with gnome - still working on the assumption that only wacom pens have tool ids.

whot avatar Dec 08 '25 01:12 whot

so atm we have to wait for gnome to update the api ?

wehrcraft avatar Dec 24 '25 23:12 wehrcraft