Download Java SE Development Kit 5.0 "Linux self-extracting file" version from http://java.sun.com/ Install software that converts self-extracting file to Debian package: $ sudo apt-get install java-package Convert the self-extracting file to a Debian package: $ fakeroot make-jpkg jdk-1_5_0_15-linux-i586.bin Install the debian package: $ sudo dpkg -i sun-j2sdk1.5_1.5.0+update15_i386.deb Check Java's installed and working: $ java -version Extract PCPserial: $ unzip PCPserial.zip Extract and install rxtx libraries: $ unzip rxtx-2.1-7-bins-r2.zip $ cd rxtx-2.1-7-bins-r2 $ sudo cp RXTXcomm.jar /usr/lib/j2sdk1.5-sun/jre/lib/ext/ $ cd Linux/i686-unknown-linux-gnu $ sudo cp * /usr/lib/j2sdk1.5-sun/jre/lib/i386 Ensure the USB IO board is not plugged in (unplug if it is) Clear the dmesg ring buffer (i.e. remove old messages): $ sudo dmesg -c >/dev/null List the usb devices: $ lsusb Plug board in, and wait a few seconds. Confirm the board has been detected as a USB device: $ dmesg There should be a reference to a new USB device being detected and a configuration being chosen. List the USB devices again, comparing the output with that of the previous run to discover the vendor and product IDs of the IO board: $ lsusb New line: Bus 004 Device 004: ID 04d8:000a Microchip Technology, Inc. Load the usbserial kernel module, passing it the vendor and product IDs: $ sudo modprobe usbserial vendor=0x4d8 product=0x000a Run dmesg again. It should say that the IO board has been attached to ttyUSB0 To make the usbserial module load at subsequent boots, edit /etc/modules: $ sudo vi /etc/modules Add the following line to the end of the file: usbserial vendor=0x4d8 product=0x000a Give your account permission to access the serial port: $ sudo usermod -a -G dialout Update source with correct serial port (portName = "/dev/ttyUSB0"): $ vi src/com/bt/pcp/Measure.java Recompile: $ javac -sourcepath src -d bin src/com/bt/pcp/Measure.java Run program: $ java -cp bin com.bt.pcp.Measure