
Please note the mouse and stylus require batteries (active device) otherwise the device won’t output anything (there are no coils inside the stylus like modern tablets)

Windows drivers #
Medion PC USB Graphics Tablet 50007120 MD9570 read-out on a Orange Pi Zero 3 #
When connected you will see the it it recognized, but no driver has been loaded:
usb 4-1: new low-speed USB device number 12 using ohci-platform
usb 4-1: New USB device found, idVendor=08ca, idProduct=0010, bcdDevice= 1.03
usb 4-1: New USB device strings: Mfr=1, Product=3, SerialNumber=0
usb 4-1: Product: USB Tablet Series Version 1.04
usb 4-1: Manufacturer: AIPTEK International Inc.
Compiling driver #
First install build essentials with:
sudo apt install build-essential
Then the KERNEL HEADERS, but these cannot be found in the repo, this does NOT WORK:
sudo apt install linux-headers-$(uname -r)
So after some research it seems the kernel headers are in a DEB file located on the filesystem, you can locate it with this command:
ls /opt/linux-headers*
/opt/linux-headers-next-sun50iw9_1.0.4_arm64.deb
Install the DEB file for the KERNEL HEADERS:
sudo dpkg -i /opt/linux-headers*.deb
Selecting previously unselected package linux-headers-next-sun50iw9.
(Reading database ... 62418 files and directories currently installed.)
Preparing to unpack .../linux-headers-next-sun50iw9_1.0.4_arm64.deb
... Unpacking linux-headers-next-sun50iw9 (1.0.4)
... Setting up linux-headers-next-sun50iw9 (1.0.4)
... Compiling headers - please wait ...
If all went ok, you can see the created folder:
ls /usr/src
... ... linux-headers-6.1.31-sun50iw9 ... ...
So the headers are now located in this folder:
/usr/src/linux-headers-6.1.31-sun50iw9
Compile the aiptek driver
Now the aiptek driver is no longer on some other or modern kernels, so we have to compile it on the sytem, the driver can still be found in the old kernel repos:
https://raw.githubusercontent.com/torvalds/linux/v6.1/drivers/input/tablet/aiptek.c
Download the source file:
wget https://raw.githubusercontent.com/torvalds/linux/v6.1/drivers/input/tablet/aiptek.c
Now create a Makefile
sudo nano Makefile
And put in the following contents:
obj-m := aiptek.o
KDIR := /usr/src/linux-headers-6.1.31-sun50iw9
PWD := $(shell pwd)
all:
$(MAKE) -C $(KDIR) M=$(PWD) modules
clean:
$(MAKE) -C $(KDIR) M=$(PWD) clean
Save the file.
Make (compile) the file
make
make -C /usr/src/linux-headers-6.1.31-sun50iw9 M=/home/pi modules
make[1]: Entering directory '/usr/src/linux-headers-6.1.31-sun50iw9'
CC [M] /home/pi/aiptek.o MODPOST /home/pi/Module.symvers
CC [M] /home/pi/aiptek.mod.o
LD [M] /home/pi/aiptek.ko
make[1]: Leaving directory '/usr/src/linux-headers-6.1.31-sun50iw9'
now we have build the aiptek.ko file, place it in the right folder:
sudo cp aiptek.ko /lib/modules/$(uname -r)/
Reinit the module list:
sudo depmod -a
Load the driver:
sudo modprobe aiptek
Check if the module is loaded:
lsmod | grep aiptek
aiptek 28672 0
Now you will see in dmesg the following:
aiptek: loading out-of-tree module taints kernel.
aiptek: module verification failed: signature and/or required key missing - tainting kernel
aiptek 4-1:1.0: Aiptek using 400 ms programming speed
input: Aiptek as /devices/platform/soc/5200400.usb/usb4/4-1/4-1:1.0/input/input1
usbcore: registered new interface driver aiptek
And the device is loaded!
Read-out the pad #
You can readout the pad using evtest
pressure:
Event: time 1761913333.974016, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 32
...
Event: time 1761913333.974016, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 682
stylus touching the pad:
Event: time 1761913227.174065, type 3 (EV_ABS), code 40 (ABS_MISC), value 33
stylus released from the pad:
Event: time 1761913227.534035, type 3 (EV_ABS), code 40 (ABS_MISC), value 32
stylus button pressed:
Event: time 1761913275.838019, type 3 (EV_ABS), code 40 (ABS_MISC), value 32
stylus or mouse movement:
Event: time 1761913379.645989, type 3 (EV_ABS), code 0 (ABS_X), value 1502
Event: time 1761913379.645989, type 3 (EV_ABS), code 1 (ABS_Y), value 1021
To filter out the mouse buttons you can use:
sudo evtest /dev/input/event1 | grep BTN_
mouse buttons:
Event: time 1761913552.725961, -------------- SYN_REPORT ------------
Event: time 1761913552.997965, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
Event: time 1761913552.997965, -------------- SYN_REPORT ------------
Event: time 1761913553.149946, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
Event: time 1761913553.149946, -------------- SYN_REPORT ------------
Event: time 1761913553.525946, type 1 (EV_KEY), code 273 (BTN_RIGHT), value 1
Event: time 1761913553.525946, -------------- SYN_REPORT ------------
Event: time 1761913553.725965, type 1 (EV_KEY), code 273 (BTN_RIGHT), value 0

