Configuring the XpPen ACK05 Remote with only FLOSS on GNU/Linux: my investigation and workarounds.
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
- The ACK05 Official User Manual (PDF).
- The ACK05 on XpPen store (not affiliated
- Screenshot on Reddit of firmware uploading on MsWin (in comments).
- QMK Firmware, a FLOSS CLI app for keyboard firmware.
- QMK "Compatible Microcontrollers" documentation.
- QMK issues mentioning nRF52 on Github
- nRF52 MCU informations, specifications (PDFs).
- Adafruit_nRF51822_Flasher.
- Nordic proprietary CLI tool for nRF52
- Arch Linux documentation about Scancode using Udev
- Review of the XpPen windows proprietary driver on Parkablog
24 comments
Konqi@mastodon.social
Hello David! I did not realize that you are not using Wacom tablets anymore.
davidrevoy
@Konqi Hey, yes. My last one was a Intuos Pro Large, a gift from Wacom (src: https://www.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.
5 ★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. 😊
Konqi@mastodon.social
David, how good is Linux support using XP Pen vs Wacom, just for curiosity.
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
2 ★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 https://www.davidrevoy.com/index.php?tag/hardware
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.
★kate@federatedfandom.net
I was just thinking I should check your blog to see how that brand plays with foss... Your timing is immaculate
davidrevoy
@kate 😊 Thank you. Well, I have so far workaround for the 16 Artist Pro (gen2) and the 24 Pro ( https://www.davidrevoy.com/index.php?tag/hardware ), all other model of this brand is still a bit in the unknown.
2 ★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. 😆
silmathoron@floss.social
you're on X11, right? Do you know if that works also for wayland?
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)
★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:
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 ( https://www.kickstarter.com/projects/dekunukem/duckypad-pro-advanced-macro-scripting-beyond-qmk-via ) 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 ★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!
https://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.
★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.jpgdavidrevoy
@TopazRabbit @poleguy 😍 Wow! Good work 👍
★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.
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?)
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.
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. 😆)
★csolisr@hub.azkware.net
Talking about open-source firmware, are there any macropads that use QMK? qmk.fm/
davidrevoy
@csolisr Yes, some exists and I could find them in my research using a search with the keyword "pad" on this big list https://github.com/qmk/qmk_firmware/tree/master/keyboards ; 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 https://www.tindie.com/products/dekuNukem/duckypad-do-it-all-mechanical-macropad/ , 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.
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
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: https://www.davidrevoy.com/article1030/debian-12-kde-plasma-2024-install-guide , and https://www.davidrevoy.com/article1004/xppen-artist-pro-16-gen-2-review-on-gnulinux about how to configure the Artist 16 Pro with only Free/Libre and Open Source Software. Here this mix is really solid and stable.
★overbyte@gamepad.club
thanks very much. I’ll have read
★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.