FreeBSD XP-Pen unlocker and evdev bridge
Project description
XP-Pen Deco Mini7 v2 FreeBSD Daemon (Unofficial)
A small userspace daemon that allows simple operation of the XP-Pen Deco Mini7 V2 (note: affiliate link) on FreeBSD (will be extended to different types of tablets most likely later on).
Rationale / some history
This repository emerged out of the frustration that it has been hard to get an otherwise excellent
XP-Pen Deco Mini7 V2 up and running easily on FreeBSD. Everytime the device was attached it
turned up as pointer and keyboard device as expected (two HID device instances), but the
pointer device never started streaming stylus positions. I played around trying to install existing
drivers like OpenTabletDriver, tried out xf86-input-wacom, libwacom and many other solutions
but they either failed to compile due to heavy dependencies and unsupported platforms or just
plainly did not work due to some untraceable errors.
Minor research pointed out that those tablets require an activation sequence to enable
output of the HID nodes and will then spill out reports. In addition the HID messages for
styli are not compatible with the standard USB mouse driver usm. This lead to the quick
overnight development of xppen-mini7-v2-fbsd based on information captured on Windows utilizing
Wireshark and USBPcap.
Introduction
xppen-mini7-v2-fbsd is a Python daemon that:
- Locates XP-Pen Deco Mini7 V2 tablets on FreeBSD using
PyUSBby their vendor and product ID. - Replays the Windows-style initialization sequence so the stylus interface enters reporting mode.
- Creates a virtual
/dev/input/event*node via FreeBSD'suinputdriver and forwards stylus packets with pressure/tilt data. - Optionally forwards packets to a Unix domain socket instead of
uinput. This feature will be used for some applications this author had in mind, it will most likely be useless for anyone else. - Can run once against an explicit
/dev/ugenX.Ypath (for example to be executed via adevdhook) or stay resident, periodically scanning for devices and auto-binding when the tablet appears.
Requirements
- FreeBSD 13 or higher with
evdev,uinput, andhidsupport available (either compiled into the kernel like forGENERIC, or loaded viakldload evdev uinput hidif your kernel omits them). If/dev/uinputexists the daemon will most likely work. - Access to
/dev/uinputand to the USB device (typically run asrootor grantdevfspermissions since we need access tousbconfigand other low level routines). - Python 3.11 or higher with
pyusbinstalled.
Installation
pip install xppenfbsd
Usage
Foreground daemon that scans for the tablet and logs all received messages and events verbosely:
xppen-fbsd-daemon --scan --verbose
Daemon performing the same action in background:
xppen-fbsd-daemon --scan --daemonize
Launching by specifying an explicit device path (for example when launching useful from devd):
xppen-fbsd-daemon --device ugen0.7 --detach --event-mode 660 --event-group wheel
Socket-only mode:
xppen-fbsd-daemon --socket /var/run/xppen.sock --no-uinput
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xppenfbsd-0.0.1.tar.gz.
File metadata
- Download URL: xppenfbsd-0.0.1.tar.gz
- Upload date:
- Size: 12.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7c867b22992e175ccce480fe18d81bc5842391842587fdf45d9ed9be409e88a
|
|
| MD5 |
01c998d27b443e782fac5dc1294e777e
|
|
| BLAKE2b-256 |
7032af14b574881ca0ef9a6cb83b48686ed1b6674a43698a012c7edb99df3be5
|
File details
Details for the file xppenfbsd-0.0.1-py3-none-any.whl.
File metadata
- Download URL: xppenfbsd-0.0.1-py3-none-any.whl
- Upload date:
- Size: 13.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a3364d4b0366945cd303126776f93900ffddf3b67f624293924f5c11c8566e2
|
|
| MD5 |
4884ae25dff50690243ed49aa80000ad
|
|
| BLAKE2b-256 |
aad20f016432c1542f03a383b8476f7cc91e21f4c6a7bae4564dbbf624940908
|