How to: Touch Input for Volla Tablet with Volla Pen Tire (no pressure sensitivity - only touch)
-
It took me a while: Now there is touch sensitivity for the Volla Tablet. It can be used for clicking, mouse movements, even basic handwriting.
Disclaimer:
-
This instruction is for the Volla Tablet with Volla Pen Tiro. I have not tested this on any other device.
-
This fix only works for touch events and is a work-around until MIR support for pen input is fixed. Pressure sensitivity may come with MIR version 2.0 (roadmap this year) or never at all. Whenever there will be true pressure sensitivity the udev rules below have to be reverted / adjusted.
-
There is a bug in the libertine container (https://forums.ubports.com/topic/12135/input-events-in-right-third-of-screen-in-landscape-mode-are-not-registered-only-in-libertine-container
If you want to use landscape orientation (as is normal when using the keyboard) there is no input in the right third of the screen which is annoying. The container works fine in portrait mode. In the above mentioned post you can also get an idea how handwriting looks like with touch input. -
We have to write directly to the system partition, so installed libraries or udev rules might be overwritten with any update.
This instruction is working on ubuntu touch 24.01 stable with update version 437 (March 2026).
If you can live with the above - here is how to get the pen working. I will give detailed instructions, maybe other hardware / stylus combination may work in similar ways:
Make the system partition writeable:
sudo mount -o remount,rw /Install the following packages:
sudo apt install evtest sudo snap install libinputfind the input device: look for
stylus, .... The Tiro Pen useshimax-stylus, make a note of the device identifier, e.g.himax-stylus. If there is no stylus: sorry, your journey ends here.sudo snap run libinput.list-devices | grep Device # for the Volla Pen Tiro: # Device: himax-stylusoutput info regarding your stylus - replace
himax-styluswith your pen. Also: it should have a line withCapabilitiesandCalibration. Note the event number (line starts withKernel:)sudo snap run libinput.list-devices | sed -n '/himax-stylus,+20p' # Kernel: /dev/input/event8Are events registered? Replace with your event number, quit with
Ctrl + csudo snap run libinput.debug-events --device /dev/input/event8 # Touch the screen with the pen sudo evtest /dev/input/event8 # Pressure sensitity support? Press lighter and harder with the pen: do ABS_PRESSURE values change?If
/dev/input/event8exposesABS_PRESSURE, and the device is (back) in tablet mode (ID_INPUT_TABLET=1,Capabilities: tablet), then the hardware/kernel side may already be capable of real pen pressure. In the Linux input model,ABS_DISTANCEis hover distance, whileABS_PRESSUREis the pressure axis;BTN_TOOL_PEN/BTN_TOUCHdescribe pen presence and contact.The output of
udevadm info -q property -n /dev/input/event8 | grep '^ID_INPUT' # replace with nur event numbershows which mode the stylus is currently in:
- ID_INPUT_TABLET=1 (default): the pressure sensitive mode (if the stylus has the capability)
- ID_INPUT_TOUCHSCREEN=1: touch mode
ID_INPUT_TABLET=1: The driver actually reports pressure but MIR graphical surface is not reacting to it. No way to fix this. Let's switch to touch sensitivity (ID_INPUT_TOUCHSCREEN) so at least we get some events registered.Let's use udev rules to remap the events: create a new rule
sudo nano /etc/udev/rules.d/99-himax-stylus-as-touch.rulesRedirecting input: Use your own stylus identifier from above, it is necessary to distinct this event from touch (hand) input and mouse events.
ACTION=="add|change", SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{name}=="himax-stylus", \ ENV{ID_INPUT}:="1", ENV{ID_INPUT_TABLET}:="", ENV{ID_INPUT_TOUCHSCREEN}:="1"Apply the rule: reload udev and retrigger the device
sudo udevadm control --reload sudo udevadm trigger /sys/class/input/event8 # replace with nur event numberThen verify:
udevadm info -q property -n /dev/input/event8 | grep '^ID_INPUT' # it should list ID_INPUT_TOUCHSCREEN=1you may need to restart the system. if it still says
ID_INPUT_TABLETcheck your input. Test your pen with swiping from top or the left / right screen border.To revert the rules: delete / comment the lines in the rules file and reboot.
If later on you want to test pressure sensitivity you can also switch to tablet mode withACTION=="add|change", SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{name}=="himax-stylus", \ ENV{ID_INPUT}:="1", ENV{ID_INPUT_TABLET}:="1", ENV{ID_INPUT_TOUCHSCREEN}:=""and reload / retrigger:
sudo udevadm control --reload sudo udevadm trigger /sys/class/input/event8 # replace with nur event numberI will write an instruction how to setup xournal++ app for handwriting later in another post.
-
-
T tusch001 has marked this topic as solved on
-
Thanks @tusch001 this was very helpful and worked on the stable Focal channel with Snapz0r installed. I would recommend one change: the sed command should read-
sudo snap run libinput.list-devices | sed -n '/himax-stylus/,+20p'instead of:
sudo snap run libinput.list-devices | sed -n '/himax-stylus,+20p'A few practical questions for you or anyone else:
What kind of daily battery life are you seeing for the stylus, over how many hours of use?
Do we know if it's compatible with other UT devices?
In Libertine, is there a convenient way to anchor the stylus' nib to things like scroll bars? I've been trying to scroll up/down on VS Code but it's quite cumbersome and feels like I have to press it multiple times then do a small flick to get it to scroll by a little bit every time. Kind of much like using my finger (it's just that the nib is so much more small and thus more of a precision instrument compared to anyone's finger!). Unfortunately I need to figure out how to get my Volla Keyboard accessory working again and thus I don't have access to its touchpad and a mouse cursor (I've been using a bluetooth keyboard instead), so this would be a great workaround for the time being if it's possible.
On an OS level:
Hopefully someone can formally implement this into an OTA upgrade for the tablet on Noble and potentially even a maintenance release on Focal? The code changes look straightforward if they're just about changing the udev rules and such. I have been working on contributing to app development on and off but as a) the tablet is a bit of a daily driver for me and I like to keep it on the stable channel and b) contributing to OS patches is something I'm not really familiar or comfortable with, it would be excellent to see this happen if someone else can help out.
-
T TartanSpartan referenced this topic
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login