UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login
    1. Home
    2. tusch001
    3. Best
    T Offline
    • Profile
    • Following 0
    • Followers 0
    • Topics 7
    • Posts 10
    • Groups 0

    Posts

    Recent Best Controversial
    • 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:

      1. This instruction is for the Volla Tablet with Volla Pen Tiro. I have not tested this on any other device.

      2. 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.

      3. 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.

      4. 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 libinput
      

      find the input device: look for stylus, .... The Tiro Pen uses himax-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-stylus
      

      output info regarding your stylus - replace himax-stylus with your pen. Also: it should have a line with Capabilities and Calibration. Note the event number (line starts with Kernel:)

      sudo snap run libinput.list-devices | sed -n '/himax-stylus,+20p'
      # Kernel:     /dev/input/event8
      

      Are events registered? Replace with your event number, quit with Ctrl + c

      sudo 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/event8 exposes ABS_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_DISTANCE is hover distance, while ABS_PRESSURE is the pressure axis; BTN_TOOL_PEN/ BTN_TOUCH describe pen presence and contact.

      The output of

      udevadm info -q property -n /dev/input/event8 | grep '^ID_INPUT'   # replace with nur event number
      

      shows 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.rules
      

      Redirecting 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 number
      

      Then verify:

      udevadm info -q property -n /dev/input/event8 | grep '^ID_INPUT'
      # it should list ID_INPUT_TOUCHSCREEN=1
      

      you may need to restart the system. if it still says ID_INPUT_TABLET check 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 with

      ACTION=="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 number
      

      I will write an instruction how to setup xournal++ app for handwriting later in another post.

      posted in Support
      T
      tusch001
    • input events in right third of screen in landscape mode are not registered (only in libertine container)

      On the Volla Tablet landscape mode is the preferred way to use, esp. when connected to a keyboard.

      When using apps in a libertine container (Firefox ESR, Xournal++, IntelliJ IDEA, ...) touch events are not registered on the right side of the screen. The picture shows where the stylus stops working (the stylus is also registered as touch event as is the mouse, it is the only way to get the stylus working. I will later write an instruction how to get the stylus working). When moving the mouse / stylus too far right, it stops at the line which is approx the width of the screen when in portrait mode.
      When I try to select text in firefox with the mouse or click a button, the coordinates are off, both in x and y direction.

      In portrait mode inside the container and outside the container the apps register input events as they should.

      Is there a way to fix the screen orientation in the desktop-starter? I don't know, but I assume that the problem is related to the screen orientation. Is there a way to confirm my assumption? I'm welcome for any suggestions to fix this.

      Thx.

      Libertine Container landscape.jpg

      posted in Libertine
      T
      tusch001
    • RE: input events in right third of screen in landscape mode are not registered (only in libertine container)

      @projectmoon

      Snaps or direct installation work. No input problems there. But unfortunately then the DPI is so off, that menus are by far too small. The only fix for the DPI related problems, was to install the apps into containers and use libertine-tweak-tools for adjusting the DPI.
      It's a trade off. Also: not all apps have snap versions.

      posted in Libertine
      T
      tusch001