Digital notepads

This information applies to the following devices:

  • Waltop: Digital Ink Pad T01s
  • Aiptek: MyNote, MyNote Premium, MyNote Premium II
  • Medion/Tevion: MD 85076, MD 85276 1
  • Adesso: CyberPad
  • Aclass Technology: EzPad Digital NotePad

These devices are all more or less the same product and apparently based on the Waltop device.

Note taking

Without PC, a digital notepad can be used for taking notes which are stored on its internal memory. Once connected to the PC, the notepad is recognised as standard USB mass storage device. Each page of the notes is in a file with the extension .top.

top2svg.py is a slightly modified version of a python script from 2 which converts top files to the widely supported svg format. Usage:

 top2svg.py foo.top > foo.svg

To install the script, make it executable,

 chmod +x top2svg.py

and copy it to a location included in your PATH variable.

The top files on an notepad can be organised in directories, so that the following shell script might be useful: topdir2pdf.sh converts all top files in the directory given as command-line argument to a single pdf-file. Example:

 topdir2pdf.sh directory/with/top-files

creates the file top-files.pdf in the current directory. Each page of this pdf file corresponds to one top file in the directory top-files. The script requires top2svg.py to be installed, as well as Inkscape 3 and Ghostscript. The script can be installed in the same way as top2svg.py.

X11 input device

When connected to the USB port of a computer, the notepad is not only recognised as mass storage but also as mouse device. It should be usable as mouse replacement out of the box. However, the calibration of the cursor position varies with time, rendering the device useless for producing precise sketches, for example.

To overcome this problem, the xorg.conf file has to be adjusted.4 But first of all, we have to make sure that the notepad can be unambiguously identified with a certain device file (without this step, a device file /dev/input/event# with # a somewhat random integer will be assigned to the notepad). For this purpose, we create an udev rule. Both steps, creating the rule and adjusting the xorg.conf file require root privileges.

Udev rule

Udev rules are stated in plain text files in the directory /etc/udev/rules.d. The alphabetical order of the file names reflects the priority of the files. For our rule we create the file z60_xserver-xorg-input-waltop.rules (which has rather low priority, the rule might be overwritten in a file with higher priority) containing the following line:

 KERNEL=="event*", ATTRS{idVendor}=="172f", SYMLINK+="input/waltop"

After restarting the udev daemon the notepad can now be accessed via /dev/input/waltop. The daemon is restarted with (as root)

 /etc/init.d/udev restart

for Debian, a similar command for other systems or by rebooting.

xorg.conf

The following input device section must be added to the file /etx/X11/xorg.conf:

 Section "InputDevice"
Identifier "Digital Notepad"
Driver "wacom"
Option "Device" "/dev/input/waltop"
Option "Type" "stylus"
Option "TopX" "1100"
Option "TopY" "1380"
Option "BottomY" "6752"
Option "BottomX" "10188"
EndSection

TopX and TopY are the coordinates on the notepad representing the top-left corner of the screen, BottomX and BottomY the coordinates for the bottom-right corner. The given values can be adjusted, keeping in mind that the top-left corner of the notepad is at TopX=0, TopY=0, its bottom-right corner at BottomX=11000, BottomY=8250.

Also, a corresponding entry in the server layout section is required:

 Section "ServerLayout"
[...]
InputDevice "Digital Notepad" "SendCoreEvents"
EndSection

The X server has to be restarted for the changes to take effect.

Hotplugging

With the configuration described so far, the notepad has to be connected to the usb-port when the xserver is started. Once the xserver is running you can unplug and replug the device. Afterwards, by switching to a virtual console with Ctrl-Alt-F1 and back to the X server with Ctrl-Alt-F7 the device will be reinitialised. This should even work if the system is suspended to disk between unplugging and replugging.

For real hotplug support, the only solution so far seems to be wdaemon5 which makes the xserver believe that the notepad is present even if it is actually not.

Installation of Wdaemon

To install, first make sure that daemon6 is installed and in your PATH. Then, download the source code of wdaemon, extract the tarball and compile:

 wget http://jake.ruivo.org/~aris/wdaemon/wdaemon-0.14.tar.bz2
tar -xjvf wdaemon-0.14.tar.bz2
cd wdaemon-0.14
make

The resulting executable should be copied to /usr/bin/:

 cp wdaemon /usr/bin/

Now edit wdaemon.initrd: The line

 . /etc/init.d/functions

can be removed. The line

 daemon /usr/bin/wdaemon -c /etc/wdaemon.conf -f >/dev/null;

should be changed to

 daemon -- /usr/bin/wdaemon -c /etc/wdaemon.conf -f >/dev/null;

and

 killproc /usr/bin/wdaemon

to

 killall /usr/bin/wdaemon

After editing, make the file executable,

 chmod +x wdaemon.initrd

and copy it to /etc/init.d/wdaemon:

 cp wdaemon.initrd /etc/init.d/wdaemon

New udev rules are installed to /etc/udev/:

 cp udev/61-uinput-wacom.rules /etc/udev/rules.d/
mkdir /etc/udev/scripts
cp udev/is_uinput.sh /etc/udev/scripts/

Finally, create the directory /var/lock/subsys (if not already existent),

 mkdir /var/lock/subsys

and make sure that wdaemon is started in the default runlevel - for Debian, this is done by creating a symbolic link in /etc/rc2.d:

 ln -s /etc/init.d/wdaemon /etc/rc2.d/S89wdaemon

Configuration

Create the configuration file /etc/wdaemon.conf containing the line

 device = 0,/dev/input/waltop

and change in /etc/X11/xorg.conf the line

 Option		"Device" "/dev/input/waltop"

to

 Option		"Device" "/dev/input/uinput-devices/uinput-wacom-penpartner-tablet"

Reboot the system or start the daemon manually with

 /etc/init.d/wdaemon start

and restart the xserver. Now, the digital notepad can be plugged in at any time and has no longer to be connected when the xserver is started.

Application: shared whiteboard

Coccinella 7 is a jabber client with integrated whiteboard function. That means, you can chat and talk with people and at the same time draw on a shared whiteboard. Together with a digital notepad as input device, this is a very convenient way to exchange formulas and diagrams. The EVO 8 collaboration network and the Inkscape 3 vector-graphics editor also have an integrated shared whiteboard.


1 http://eddie.niese.net/20071129/new-digital-notepad-gadget
2 http://graphics.tudelft.nl/~jorik/dlog/public/2007-11-28.html
3 http://www.inkscape.org
4 http://graphics.tudelft.nl/~jorik/dlog/public/2007-12-11.html
5 http://jake.ruivo.org/~aris/wdaemon
6 http://libslack.org/daemon
7 http://thecoccinella.org
8 http://evo.caltech.edu