Crosspad Under Linux Information

MATLAB code interface

I have written the following MATLAB code to read in the data output by the Crosspad.

First you need to run the dowloader program (cpdload.m) to download the info from the crosspad onto your machine. Run cpdload first, then hit upload on your Crosspad. This will produce a something.cpd file with the binary data just as the Crosspad spits it out over the serial port. You need to have read and write permissions on the serial port the Crosspad is connected to.

Now run the MATLAB program readcpd.m to parse the info into some useful structures.

WARNING: the Huffman decoder is currently implemented by using a MATLAB string comparison function that is *very slow*. Sorry.

Other code

Update: there seems to be some problem with the cpdload.m program at the minute. for now, here is a link to itojun's padload program compiled for ELF linux. run as e.g. padload -uv -o outfile.cpd /dev/cua0 This was from here originally.

Note that IBM has a C++/Java SDK for working with Crosspad and Ink formats. See the IBM electric ink page.

If you are really ambitious, you might look here for some people trying to run kitchenInk under linux

Crosspad timing information

The Crosspad timestamps the beginning of each stroke, but only to a 1 second resolution. However, the sampling within strokes is not uniform in space, but rather uniform in time. You can convince yourself of this by drawing two lines of equal length at different speeds and seeing how many points are in each stroke.

The temporal sampling rate is 132Hz.

Crosspad spatial resolution

The spatial resolution claimed by IBM/Cross is 254dpi (about 1/10 mm), though in my experience variation in pen angle (since the transmitter is not exactly at the pen tip) make the real resolution less by a factor of about 2.

[ | Information | Research | Teaching | Professional | ]

Sam Roweis, Vision, Learning and Graphics Group, NYU,