% Cross iPen drivers. % David Parsons % Wed Jan 16 07:50:06 PST 2008 #Drivers for the Cross iPen Here are a couple of drivers I've been working on for the [Cross iPen](http://www.cross.com/catalog/cat.aspx?cat_name=iPen). The iPen is a long-discontinued drawing tablet that tries to act much like a pen, but which has a odd (and for the longest time proprietary) output format. My iPen languished in my office for about 4 years before Christopher Barrington-Leigh managed to get a specification for the output to me, at which point I picked it up off the floor, replaced the exploded AAAA battery with a new one, and started writing drivers. I've written drivers for [gpm version 1.19.6](http://en.wikipedia.org/wiki/GPM_(software\)) and for [XFree86 3.3.6](http://www.xfree86.org). I've also hacked support into the [FreeBSD](http://www.freebsd.org) `moused` driver, but that driver isn't really good for handling tablets, so I've not pursued it very far. I've written: =[A test program](ipen.c)= This little program (which works under FreeBSD and [Linux] (http://www.linux.org) with gl\*bc) simply configures the iPen and reports status changes on stdout. =[A GPM patch](ipen-gpm.patch)= This patch adds iPen support to gpm 1.19.6. The iPen is not well-suited to autodetection (because you have to do a funny initialization sequence) so you have to explicitly set the mouse type to `ipen`. This software is released both under a [BSD-style license](COPYRIGHT.html) and a stripped down version of that license that should be compatable with the GPL. =[An Xinput driver](xf86iPen.c)= This program, once you get it built, adds an XExtensionDevice to your X server that lets you use the iPen as a mouse (and I think also as a drawing device for the GIMP and other graphics programs.) I've built it as a loadable module for X11, but I think it will also work if you statically link it into the server. It wasn't easy for me to get this thing to build (I had to manually hack the `Makefile` in `xc/programs/Xserver/hw/xfree86/common` to build it, so I'd be intensely thankful if someone could point me to a tutorial on how to write Xinput modules without having to drag the whole obnoxious X11R6 source distribution around after it. To build the iPen driver as part of the X server (for Xfree 3.3.6; I don't know what the build process is for Xfree 4 or the Xopen offering), you need to 1. get a X source distribution and unpack it into **`$ROOT`** (pick your **`$ROOT`**, but remember it. 2. copy `xf86iPen.c` to **`${ROOT}`**`/programs/Xserver/hw/xfree86/common`. 3. cd to **`${ROOT}`**`/programs/Xserver/hw/xfree86/common`. 4. edit the `Imakefile` (add `xf86iPen.c` to `XINPUT_DEV_SRCS` and `xf86iPen.o` to `XINPUT_DEV_OBJS`) 5. run ``xmkmf'' (will build the makefile). 6. cd to **`$ROOT`**. 7. run ``make''. All of this code is released under a [BSD-style copyright](COPYRIGHT.html), so you can do just about everything you want with it.