Skip to content

@DanThiffault /

Embed URL


Subversion checkout URL

You can clone with
Download ZIP
Fingerworks Multitouch Utility Runner
# authenticate with the repository
# use a blank password
cvs login
# pull down the source
cvs -z3 co -P jusb
# change directories
cd jusb
# download the patch
curl >jusb_osx.patch
# patch the source
# use Makefile as the file name
patch < jusb_osx.patch
# compile the source
# copy the files in to the referenced directory
cp -r libjusbMacOSX.jnilib* /Applications/FingerWorks/lib/jusb/
cp jusb.jar /Applications/FingerWorks/lib/jusb/
< JNI_INC = -I/System/Library/Frameworks/JavaVM.framework/Versions/1.3.1/Headers
> JNI_INC = -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers
> native/*.o \
export JAVAROOT=Contents/Resources/Java/
export CLASS_PATH=lib/jusb/jusb.jar:lib/FW_defaults.jar:lib/upgredit.jar:lib/jh.jar:lib/utility_help.jar:lib/jdom/xerces.jar:lib/jdom/jdom.jar:$JAVAROOT/lax.jar
cd /Applications/Fingerworks
java -Djava.library.path=lib/jusb -classpath $CLASS_PATH fingerworks.firmup.UtilityLauncher

I've used this info and Platypus to create an application you can just drop in your Applications directory.

Fingerworks MultiTouch Utilities


im so happy there are people who still support this.

i just got my touchstream today from somebody on the fingerfans website.


however, the app humblehacker put together isnt working. any ideas? Im on Lion.


Have you tried running through these instructions yet?


no, i just took the humblehacker patched with your changes and dropped it into my applications dir. when running the app, it never actually loads.

unless i am mistaken, the instructions you posted require that i already have the fingerworks app installed.

i don't have the original app installed but i have the one that humblehacker posted (which should have already included your changes). should i just run your script/instructions over it?

alternatively, maybe you can just post your patched and working app so that all i have to do in drop it in my app folder and it works.



Here's a link to my finger works app

I'm not sure how well the above app will work in a different environment, but you're welcome to try. I still think you're best bet is to download the original app and then follow the instructions. Good luck!


interesting... the app you posed doesnt work on my machine. i'll try your instructions with the original app and let you know how it goes :)


Dan, I got it to work. I'm not sure what I was doing wrong, but after a second try, I was able to download your above link from s3 and get the app to run by running the mtu script that was included. Thank you a ton :)


Although I can view all the gestures in the my gesture editor and run the diagnostics successfully, the mtu script is returning this output:

usb.macosx.USBException: control read error -- [0x1ffffd13] [0x1ffffd13]
at usb.macosx.DeviceImpl.readControl(
at usb.core.Device.control(
at usb.core.ControlMessage.getDescriptor(
at usb.core.ControlMessage.getStandardDescriptor(
at usb.macosx.DeviceImpl.(
at usb.macosx.USB.(
at usb.macosx.MacOSX$HostImpl.mkBus(
at usb.macosx.MacOSX.newDeviceAvailable(
at usb.macosx.MacOSX.scanForDevices(Native Method)
at usb.macosx.MacOSX$

Which I think is preventing me from uploading new gestures or writing information to the device.

I am trying to see if I can get it working based on your instructions about jusb.


Been trying all day without any luck. Hopefully you can steer my into the right direction.


I think the error you're getting is because you're using a version of jUsb compiled on my system. There are probably some linked libraries that aren't the same. With my version in the application folder, can you try the steps from the blog posting? If that doesn't work, run the steps one at a time from Send the output of any errors and the make command to my email address: d a n at 1 1 9 l a b s . c o m without the spaces and swap the at for @


Email sent ;)


Here I can also run the diag, but it seems to fail to kick the keyboard into DFU mode...
I'm running Mountain Lion BTW...
Oh also, the jusb repository is now empty somehow, I had to dig around the latest CVS head to build

new idDevice: 0x160, idProduct: 0x90b, idVendor: 0xe97
USB DFU suffix appended to: /Volumes/Users/michel/Documents/MyGestures/custom4f0040stealth34.U.byt
MTS_config Binary /Volumes/Users/michel/Documents/MyGestures/custom4f0040stealth34.U.byt ready for transfer!
Created Progress Panel, starting thread...
existing idDevice: 0x160 idProduct: 0x90b idVendor: 0xe97
Java computed firmware image CRC32 0x37665e04 on 34249 bytes
Exception in thread "Thread-8" java.lang.NoClassDefFoundError: usb/linux/DeviceImpl
at fingerworks.firmup.USBupgrader.a(Unknown Source)
at fingerworks.firmup.USBupgrader.downloadFirmwareFile(Unknown Source)
at fingerworks.firmup.USBupgrader.send2GestureProcessor(Unknown Source)
at Source)
Caused by: java.lang.ClassNotFoundException: usb.linux.DeviceImpl
at Method)
at java.lang.ClassLoader.loadClass(
at sun.misc.Launcher$AppClassLoader.loadClass(
at java.lang.ClassLoader.loadClass(
... 5 more

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.