Configuring the XpPen ACK05 Remote with only FLOSS on GNU/Linux: my investigation and workarounds.

Published on

Here is my research on how to use and configure the XPPen ACK05 Remote using only Free Libre and Open Source drivers and software under GNU/Linux. As you'll see, it's quite limited and many features just don't work. This guide will be updated as soon as I have new information on how to improve it, or as soon as new development improves support for this device.

Terminology:

  • ACK05 → The XPPen ACK05 Remote Controler device.
  • FLOSS → Free/Libre and Open-Source Software.

Device presentation

The ACK05, looks like a numeric keypad with a dial ring and nothing written on the keys. It comes with the "Pro (gen2)" tablet models of the XpPen brand: the Artist Pro (gen2) 14, 16 and 19 but also the Deco Pro (gen2) XLW, LW and MW. Well, it sounds like XPPen just decided to make the ACK05 the default remote for all their future tablets.

I got mine with my XpPen Artist 16 Pro (Gen2), which I reviewed last year.

But you can also buy one alone on the XpPen store for about $50. In fact, you don't need to pair the ACK05 with a tablet to use it properly; it's a standalone device. For artists, this small keyboard gives them closer access to a number of common keyboard shortcuts.


Photo of the XPpen ACK05 in usage situation for me, a right handed user of the Artist 16 Pro

Disassembling the ACK05

The ACK05 is also a tiny programmable keyboard in disguise, the Official User Manual (PDF) mention the device has a small memory to store the configuration. It also has its own microcontroller unit (MCU), an ID M52833 QIAAA0 2310AI code on it, a Nordic nRF52* family. It's a multi-protocol system-on-chip with lots of information and specifications (PDF) on the manufacturer's website.


Photo: tearing down the ACK05 device

What works, what doesn't

USB-C cable connection → it works out-of-the-box. For some reason, it's the only way to connect the device on GNU/Linux right now.

Bluetooth direct → it doesn't work. I tested it on three Bluetooth-enabled GNU/Linux computers I had at home and different distros. You can turn on the device and press the middle-of-the-dial button for 6 seconds until the LED flashes quickly, but none of them will see or pair with the device.

The USB dongle → it doesn't work. This is strange because I have never seen a mouse or keyboard with its own USB dongle have this kind of problem.

The Default Keyboard Shortcuts → it works out-of-the-box with a rather questionable layout. On the plus side, you have the three keys Shift, Ctrl and Alt clearly side by side in the middle of the device, and underneath a space bar that is easy to reach with the thumb. Undo and redo are surprisingly FLOSS standard: Ctrl+Z for undo, and Ctrl+Shift+Z for redo. On the bad side, the ACK05 key layout under GNU/Linux will automatically load the same layout as your main keyboard layout: in my case an Azerty French keyboard. This means that the default Ctrl+Z of the ACK05 will return a Ctrl+W by default, which is dangerous because it closes the document in many applications. In addition, while shortcuts like Ctrl+O for opening files and Ctrl+N for creating new ones are standard, their non-frequent use in workflows raises questions about their necessity, since these actions are typically performed only once per artwork.

The Dial → it kinda works out-of-the-box. The dial returns a Ctrl+ and Ctrl- action. It zooms in and out in Krita, and that's fine. However, the middle button of the dial has no effect and feels like it is disabled.

Customisation of keys → you can improve it, slightly. And that's my transition to the next part of this article!

Customising the keys

First, it's probably impossible to program the ACK05 with FLOSS, I spent more than a day trying and every method I tried was a dead end. Even for specialized FLOSS software in programmable keyboards like QMK Firmware it is impossible. FLOSS projects tend to flee the Nordic nRF52* family of microcontrollers because all the tools available so far are proprietary.

So we have to deal with manipulating the keystroke from the default built-in layout. And this is something that is possible, but far from ideal and has a lot of limitations. I already published a full tutorial about this for USB numeric keypads.


the MSC Scan code on the default layout.

The limitations: You cannot change, for example, the 'Ctrl+O' (double-key) shortcut to 'M' (single-key). You can only replace one of the keys in the shortcut. For example, you can change the 'O' to a 'T', and the shortcut will become 'Ctrl+T' (transform tool in Krita). Also keep in mind that changing 'Ctrl' will affect all other shortcuts that use 'Ctrl', so it's generally not advisable to do this.

With this limitation, all I can do is find a better use for the top three shortcuts. I'm going to replace them with a quick action combo in Krita to deform/scale/rotate an area: Ctrl+r (rectangular selection), Ctrl+t (transform), Enter (apply/confirm/validate). I'll also fix the bug with the French Azerty layout that prevents me from using Undo and Redo.


The MSC Scan change proposal, in green.

Follow the my previous tutorial for detailed steps, but in short, I create a new udev/hwdb.d rule:

sudo $EDITOR /etc/udev/hwdb.d/99-xppen-ack05-remote.hwdb`

And I paste this custom code for the keys (and also my fix for the Azerty keyboard on the last line).

evdev:input:b0003v28BDp0202*
 KEYBOARD_KEY_70012=0x13 # [o] => [r]
 KEYBOARD_KEY_70011=0x14 # [n] => [t]
 KEYBOARD_KEY_7003e=0x1c # [F5] => [enter]
 KEYBOARD_KEY_7001d=0x11 # /! azerty french keyboard fix [z] => [w]

then I save and refresh systemd-hwdb and udevadm.

sudo systemd-hwdb update && sleep 2 && sudo udevadm trigger

done!

Conclusion

No wireless, very limited layout customization, and the middle button of the dial not working... Yes, it's far from what this device is capable of: being wireless and having multiple layouts.

But the fact that it somehow works for its core functionality "out-of-the-box" and without anyone working on a specific driver is a kind of small miracle of ingenuity; both from XpPen and from the input Linux developers. So bravo!

An idea for XpPen engineers; if you want to make the next iteration better, just look at how an open source project like the Duckypad handles drivers and customization.

In any case, a simple $15 USB numeric keypad will be of more value to your workflow under GNU/Linux such as the one I build in my tutorial. There are many variations on this: my favorite shortcut device at the moment is a little yellow "8Bit do Zero 2" gamepad. It connects via bluetooth and has a built-in mode that turns all buttons into keyboard input (with only one key press, for video games). With a udev/hwdb.d rule it became a perfect keyboard shortcut tool while painting. Especially because I can hold it in my left hand and it follows all my positions.

Sources


24 comments

link Konqi   - Reply
Konqi@mastodon.social

Hello David! I did not realize that you are not using Wacom tablets anymore.

link David Revoy Author, - Reply
davidrevoy

@Konqi Hey, yes. My last one was a Intuos Pro Large, a gift from Wacom (src: davidrevoy.com/article921/ ), but I managed to "scratch it to death" and make the stylus wobble so much in 9 months of intensive usage that this model wasn't usable anymore... Their quality really went downhill while still getting a high price tag.
On another hand, for the same period of usage my Artist 16 Pro gen2 of XpPen is still on my desk, and functional as in day 1. I'll soon try their 19 Artist Pro. 😊

5 ★

link Konqi   - Reply
Konqi@mastodon.social

David, how good is Linux support using XP Pen vs Wacom, just for curiosity.

link David Revoy Author, - Reply
davidrevoy

@Konqi On Wayland, both are still atrocious and reduced to bare minimum.

On X11, Wacom has a better support and some DE like Plasma propose a descent GUI for configuring them
On another hand, the XPPen models are supported mostly by pure luck when their circuit board is standard UGEE Tablet architecture already supported in the kernel, and then, even with that they require post tweaks and scripts. That's what I try to post on my blog, under the "hardware" tag davidrevoy.com/index.php?tag/h

2 ★

link Konqi   - Reply
Konqi@mastodon.social

Excellent! Thank you David, I was asking you about your experience because following your post series I started to get interested into maybe acquire one inexpensive table for personal use.

link kate   - Reply
kate@federatedfandom.net

I was just thinking I should check your blog to see how that brand plays with foss... Your timing is immaculate

link David Revoy Author, - Reply
davidrevoy

@kate 😊 Thank you. Well, I have so far workaround for the 16 Artist Pro (gen2) and the 24 Pro ( davidrevoy.com/index.php?tag/h ), all other model of this brand is still a bit in the unknown.
I decided to accept a review for their 19 Artist Pro, deadline: mid November (I still haven't got it). So, I hope this model will have the same circuit board than the 16 Artist Pro (gen2) and I'll can just copy paste my method and adjust some variable here and there. 😆

2 ★

link Silmathoron   - Reply
silmathoron@floss.social

you're on X11, right? Do you know if that works also for wayland?

link David Revoy Author, - Reply
davidrevoy

@silmathoron Hey, yes, I'm still on X11, KDE Debian 12. (due to Krita not being designed for Wayland and buggy under XWayland, issues with color management, and tablet configuration).

Udev is also part of Wayland, afaik, so it should also work there ™ (but untested here)

link Topaz 🐇   - Reply
TopazRabbit@oldbytes.space

I had looked into this and decided to design my own macropad instead. I figured it would be a pain to configure in Linux. :blobcry:

link David Revoy Author, - Reply
davidrevoy

@TopazRabbit You did the right thing, imo! 👍

This ACK05 is so locked at its core... When I see in comparison the current Kickstarter for the new Duckypad Pro ( kickstarter.com/projects/dekun ) and all the features it puts on the table and the ease of configuration... the OLED screen, etc... :blobaww:

It's amazing how far XPpen are lagging behind in terms of usability despite having the hardware.

3 ★

link poleguy   - Reply
poleguy@mastodon.social

@TopazRabbit I'd love to see your progress. I did a macropad for Linux for myself on the cheap. I use it daily and it is magical!

github.com/poleguy/remap

I also use a work provided huion Kamvas pro 13 for remote whiteboard type engineering work (krita mostly). Pen works fine but I never bothered configuring the buttons on it.

link Topaz 🐇   - Reply
TopazRabbit@oldbytes.space

@poleguy Here's what I have so far. No public plans available yet, but I'll get around to it eventually. Uses QMK for config and has hot swappable sockets for the keys.

🖼️ 2947f4ee869a9280.jpg 

link David Revoy Author, - Reply
davidrevoy

@TopazRabbit @poleguy 😍 Wow! Good work 👍

link raghukamath Krita team, - Reply
raghukamath@raghukamath.com

I have somewhat accepted this fate and tried to use it with the input remapper program. As for the tablet I wish to see udev-hid-bpf work with default Debian kernel. that would take away some burden of keeping the liquorix kernel up to date for security reasons.

link David Revoy Author, - Reply
davidrevoy

@raghukamath Oh yes, this Debian policy to not get the bpf system in their default kernels is really a pain...

I haven't retried the input-remapper in age with this device and forgot about it: can it bypass the two key shortcut and assign instead only a single keypress? (eg. reassigning the Ctrl+O to a simple B?)

link raghukamath Krita team, - Reply
raghukamath@raghukamath.com

Yes it can, I have mapped it to E key. The only issue I found that it is hard to map Ctrl N since input remapper captures this as a shortcut for itself to create a new shortcut entry scheme :) so it drops your exisiting changes when you press Ctrl N and creates new list of entries :P. May be worth filing a bug with input remapper but I did not have time to check it out further.

link David Revoy Author, - Reply
davidrevoy

@raghukamath Thank you for the feedback and confirming, I had a vague souvenir input-remapper was indeed capable of this.
I'll retest it and update the blog post, this is a very useful information. 👍

(and haha for Ctrl+N. I had the same issue with running evtest ; the Ctrl+Shift+Z (w because of azerty here) button was triggering the "Close Session" of Konsole here. Impossible to get the MSC scan code of the key without configuring the shortcut of Konsole. 😆)

link Carlos Solís   - Reply
csolisr@hub.azkware.net

Talking about open-source firmware, are there any macropads that use QMK? qmk.fm/

link David Revoy Author, - Reply
davidrevoy

@csolisr Yes, some exists and I could find them in my research using a search with the keyword "pad" on this big list github.com/qmk/qmk_firmware/tr ; but I also learnt that QMK just reasign keys; you can't really make complex macro with it.
The best option remains, IMO, pad like the tindie.com/products/dekuNukem/ , with a script language that you can edit on the built-in SDcard reader and that can execute complex macro and support multiple layout (and OLED screen). and it's open and OS independant.

link overbyte   - Reply
overbyte@gamepad.club

I found using the xppen artist pro 16tp on Ubuntu with wayland and multiple screens to be a crap fest with crashing drivers for the tablet functionality and setting the active area in the software being a pain. The screen came straight up though

link David Revoy Author, - Reply
davidrevoy

@overbyte I guess you are using the proprietary driver when you say "crashing drivers"; if you combine that with Wayland and possibly some Snap Ubuntu in the mix I can indeed imagine the crap fest. 🤔

All I can propose is what I wrote about my distro of choice: davidrevoy.com/article1030/deb , and davidrevoy.com/article1004/xpp about how to configure the Artist 16 Pro with only Free/Libre and Open Source Software. Here this mix is really solid and stable.

link overbyte   - Reply
overbyte@gamepad.club

thanks very much. I’ll have read

link Ray Of Sunlight   - Reply
Ray_Of_Sunlight@mastodon.social

Windows users: **Scream and run in fear**


Post a reply

The comments are synchronised every 1h with the replies to this post on Mastodon:


How to use this? (click here to unfold)
Open a new Mastodon account on the server of your choice. Then, Copy/Paste the adress above in your Mastodon 'Search' field. The post will appear and you'll be able to fully interact with it. You'll have full control of your posts: edit, remove, etc. After that, your message will appear here.

Just please note that it may take up to 1 hours for your changes to be reflected here.