The telnetninja project

A java telnet server with status reporting for a modded Ninja pan and tilt robotic base from X10.com.

 

Preamble:

After running lava-lamps for more than a year following instructions from Pragmatic Automation we were getting bored looking at bubbles.

It was time we added some glamour to our build servers.

My colleague Scott Rowe and I came up with this Idea of installing a web cam feed that will overlay cruisecontrol status page in event of a failed build. The web cam will focus on the developer that caused the breakage.

Obviously this involved a camera mount that would take commands from cruiser.

I looked into x10's robotic camera mount and after some research found this excellent mod by PhiPi.

Once the ninja was modded, we needed to come up with a mechanism that will link the cruiser with it. Since we have more than one build servers, the best solution was to have a telnet server (just like what PhiPi has done) connected to the ninja and acting as a translator.

Another thought was bubbling in my brain. Instead of running Ninja from serial port, what if we use more modern controller with USB-serial port. The controller could talk back the status (location, velocity etc.). That gave birth to teensyninja mod project.

We needed a telnet server with plugable framework that can acomodate different types of modifictaions by pluggable drivers and, is command set independent.

That is how telnetninja project was born.

 

Fun time applying PhiPi ninja mod:

Implementing PhiPi mods was very simple except for the fact that I was not able to get 2N7000 MOSFET in radio shack. Instead I ended up using what they had - IRF510 ($1.99).

 

telnetninja project:

It is organized in very simple manner. src directory has java source code, lib directory has rxtx.org implementation of java library. doc directory has a local copy of PhiPi's Ninja mod pages. bin and jar directories are created by ant to hold compiled classes and built jar files.

The project is very simple to compile. It comes with eclipse configuration files, configured as a java project. An ant build.xml file is included which handles all tasks, from compiling to packaging including generating javadoc.

To download the server follow these links:

The rxtx-2.1.7-bins-r2.zip includes instructions for installation on Windows, Linux and other OSes.

For now, I have only implemented PhiPi mod driver. I shell release instructions and driver for parallel-Ninja shortly.

 

Documentation:

telnetninja API documentation can be browsed online.

 

Compilation instructions:

You will need two things already installed on your machine to compile.

  1. jdk 1.6 or later
  2. ant 1.7 or later

After you unzip the source zip, cd to the newly extracted directory.

Now just run following command:

ant

 

How to run NinjaTelnetServer:

java -classpath "<path to telnetninja-x.x.jar>;<path to RXTXcomm.jar>" org.hooliguns.ninja.telnet.NinjaTelnetServer -PhiPi <com port> 
or
java -classpath "<path to telnetninja-x.x.jar>;<path to RXTXcomm.jar>" org.hooliguns.ninja.telnet.NinjaTelnetServer -TeensyNinja <com port> 

 

How to run RandomMovementTestForPhipiMods

java -classpath "<path to telnetninja-x.x.jar>;<path to RXTXcomm.jar>" org.hooliguns.ninja.telnet.phiPiMod.test.RandomMovementTestForPhipiMods <com port>
or
java -classpath "<path to telnetninja-x.x.jar>;<path to RXTXcomm.jar>" org.hooliguns.ninja.telnet.phiPiMod.test.RandomMovementTestForTeensyNinja <com port>

 

As usual, The modifications PhiPi has described has certainly voided my X10 warranty and could cause irreparable harm to the X10 Ninja unit and anything connected to it. Who knows? They may even create a fire hazard! I'm only reporting what I have done and not advocating that anyone else try it. If you do, and things go badly, it's your responsibility. I make no warranties or accept any liability for others trying these modifications or the telnet server. So, if you decide to emulate my actions, proceed at your own risk!

Initial version telnetninja-1.0 was released on 1st July 2008.

Version telnetninja-2.9 was released on 18th March 2009. This version includes support for teensyninja.