Making a Wacom A6 ArtPad (KT-0405-R) work on Ubuntu 9.04

A couple of years ago, I picked up a Wacom A6 ArtPad at a computer fair for very little cash (I think it was about £5 or £10) sans power supply, and it’s been sitting gathering dust since I upgraded my PC and lost the serial port. Sadly it doesn’t work on 64-bit Windows XP (no drivers). Well, I’m using Linux now, so I figured, why not make the ArtPad work again?

(I also intend to learn to draw “at some point in time” — that may take a while…)

Anyway, on with the show!

You will need:
– A6 ArtPad, pen and power supply (I used a £10 Maplin switched-mode power supply — you need 12V DC, centre negative, and the orange-coloured round tip)
– FTDI-based USB-to-serial cable. I used one of FTDI’s “evaluation kit” cables, the US232R. This is optional if your PC’s motherboard has a serial port.

Procedure:
First you need to get the Artpad connected to the PC. If you have a proper, motherboard or PCI-mounted serial port, use it — the latency on those is streets ahead of the USB-to-serial converters. Skip the next step if you managed to find a serial port.

The default latency on the FTDI converters is 16 milliseconds or “whenever the buffer’s full”. If we leave the latency this high, you’ll notice a lot of lag (delay) between moving the pen and the cursor updating. That’s a bad thing. So let’s make the machine drop the latency to minimum when it initialises the adapter…

First we need to know the USB ID and serial number of the adapter. It’s usually 0403:6001, but it may be different. Let’s find out… Open a terminal, then enter the following command:

lsusb

You’ll see something like the following:

Bus 001 Device 030: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Look for the line that references the FT232 (it’s easier if the FT232 adapter is the only USB device plugged in), then write down the Bus and Device numbers, and the ID. Now we need the serial number. This is where it gets a bit hairy… In the same terminal, enter this command:

lsusb -v -s 1:30

You need to replace “1:30” with the bus and device numbers (in my case, this is Bus 1 and Device 30), but with the leading zeroes trimmed. That means Bus 001 becomes Bus 1, and Device 030 becomes Device 30. Put those two numbers together, and you get “1:30”.

This should output something like this:

Bus 001 Device 030: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0403 Future Technology Devices International, Ltd
idProduct 0x6001 FT232 USB-Serial (UART) IC
bcdDevice 6.00
iManufacturer 1 FTDI
iProduct 2 US232R
iSerial 3 FTDN3G52
bNumConfigurations 1

(trim lots of stuff)

Note the ‘iSerial’ value — ignore the number “3”, but write down the string next to it (“FTDN3G52″ in my case).

Now open a terminal, then enter the following command:

gksudo gedit /etc/udev/rules.d/99-wacomtablet.sh

You’ll be asked to enter your logon password — do so, then click OK and Gedit will open. Paste the following text into the file:

~~~
# Set the Wacom tablet’s latency timer to 1ms (stops all that nasty jittering and cursor lag)
SUBSYSTEM==”usb-serial”, ATTRS{idVendor}==”0403″, ATTRS{idProduct}==”6001″,
ATTRS{serial}==”XXXXXXXX”, PROGRAM=”/bin/sh -c ‘echo 1 > /sys%p/latency_timer'”, SYMLINK+=”ttyARTPAD”
# Assign a symlink to make things a little easier
KERNEL==”ttyUSB[0-9*]”, ATTRS{idVendor}==”0403″, ATTRS{idProduct}==”6001″, ATTRS{serial}==”FTDN3G52″, SYMLINK=”ttyARTPAD”
~~~

Now you need to edit the USB IDs. Replace “0403” and “6001” with your USB-RS232 dongle’s Vendor and Product IDs (respectively), and replace XXXXXXXX with your dongle’s serial number. Save the file, and close Gedit.

Lastly, we need to modify the X11 configuration a little. Enter these commands in a terminal:

cd /etc/X11
sudo cp xorg.conf xorg.conf.default
gksudo gedit xorg.conf

Copy this text into the file:

~~~~
Section “InputDevice”
Driver “wacom”
Identifier “stylus”
Option “Device” “/dev/ttyARTPAD”
Option “Type” “stylus”
EndSection

Section “InputDevice”
Driver “wacom”
Identifier “eraser”
Option “Device” “/dev/ttyARTPAD”
Option “Type” “eraser”
EndSection

Section “InputDevice”
Driver “wacom”
Identifier “cursor”
Option “Device” “/dev/ttyARTPAD”
Option “Type” “cursor”
EndSection

# yes, this really *is* necessary for the wacom
# remove it if the wacom tablet is removed
Section “ServerLayout”
Identifier “Default Layout”
Screen “Default Screen”

InputDevice “stylus” “SendCoreEvents”
InputDevice “eraser” “SendCoreEvents”
InputDevice “cursor” “SendCoreEvents”
EndSection
~~~~

Be careful — you will need to add the InputDevice sections to xorg.conf, but if you already have a ServerLayout section, don’t add a second one. Instead, copy the InputDevice lines from the ServerLayout section above into the existing ServerLayout section in your xorg.conf file.

Once you’re finished, save the file and close gedit. Plug the ArtPad in (power to the ArtPad, RS232 from the ArtPad to the dongle, then USB from the dongle to your PC) and reboot.

Lastly, configure GIMP and Inkscape to use pressure sensitivity — there’s more information about doing this [here](http://ubuntuforums.org/showthread.php?t=25151).

Enjoy!