Tuesday, November 3, 2009

Servomaster 0.8-UNDEAD released

Fighting software rot is a difficult business.

To make DZ3 operational, Servomaster uplift was necessary.


  • Accommodated a less painful build tool (the project is now Maven2 compliant, like the rest of DZ3 and its dependencies);
  • Split the project into three parts: abstractions (servomaster-common), serial (servomaster-serial) and USB (servomaster-usb). Serial and USB packages require the common package to build, but are independent from each other;
  • Replaced ugly System.*.println with log4j (been done elsewhere long time ago, but wasn't really necessary in Servomaster because it just worked);
  • Package names are now net.sf.servomaster.*, for consistency, and to ensure the break away from the old code base.

Get the necessary modules from the Subversion repository.

servomaster-common requires zero involvement (other than having Maven, or, even better, Eclipse Galileo installed).

For servomaster-serial you'll need RxTx 2.1.7. RxTx used to be a pain point, but right now (on Ubuntu 9.04 and 9.10) it's a matter of executing
sudo apt-get install librxtx-java
and you're good to go (POM file points where the library is).

I didn't get my hands on installing this part on Fedora yet, will update this page as soon as I do (by the way, your feedback is welcome).

For servomaster-usb, you'll need javax.usb. Roles flipped, now this is the pain point - there's no automated way to get it installed, get to the site and follow instructions. However, instructons are more or less painless, and once you get it there, it won't require much interaction. Make sure you match te POM file content with actual jar file name - JSR80 jar file is the only one you need to build, but you'll need all three to make it work.


  1. This comment has been removed by the author.

  2. Just to make it easier for those following along at home, here are the shell commands needed to get this going. Vadim, might want to update the DZ3 Quickstart blog post to include this info as well, since ServoMaster is now a dependency.

    cd ${your_development_directory}

    svn co https://servomaster.svn.sourceforge.net/svnroot/servomaster/trunk servomaster

    (cd servomaster/servomaster-common && mvn install)
    (cd servomaster/servomaster-serial && mvn install)
    (cd servomaster/servomaster-usb && mvn install)

  3. This comment has been removed by the author.

  4. Good info here on getting RxTx to work on OS X:

    >> Java 6 and librxtxSerial.jnilib on Intel Mac OS X http://bit.ly/18REYq

  5. Added a Sidewiki comment on http://diy-zoning.sourceforge.net/Advanced/data_acquisition.html