Systronix sells a number of different Java-based modules. I took a look at their latest, the TStik2 (see Fig. 1). This module plugs into a 72-pin SIMM socket. The JStik, based on the aJile aJ-100 native-execution 32-bit Java controller, is available in a 30-pin SIMM format. The early TStik and the new TStik2 utilize the TINI (Tiny Internet Network Interface) architecture from Maxim. The TStik2 uses the latest DS80C400 8-bit 8051-compatible microcontroller from Maxim.
Although the TStik2 can run Java, C, or assembler programs, it is primarily a Java platform. I tested the system using the Java support that can be downloaded from the Internet. Check out both Maxim’s and Systronix’s websites for more information. My collection of boards were individually packaged, but you can check out Systronix’s TStik development kit ($209) that includes a TStik.72.nb.1024, TILT400.Pro, JSimm Proto board, and Jan Axelson's book Embedded Ethernet and Internet Complete. A TStik2 version of the bundle should be available soon. Definitely pick up the book even if you get the hardware separately. It is well worth it.
The TStik 2 incorporates a DS80C400 processor, 2 Mbytes of flash, 512 kbytes or 1 Mbyte of NVRAM (on-module lithium battery), Ethernet interface, and a 3.3-V voltage regulator. The TiniOS operating system, Ethernet stack, and Java support consume less than 512 kbytes of flash leaving over 1.5Mbytes for application space.
The TStik 2 has a number of enhancements over the original TStik. The Serial 1 port is now switchable between 1-Wire or asynchronous serial allowing support for three UARTs. Backup battery life has been increased typically by a factor of 5X to 10X. The DS80C400 crystal is now 15 MHz for more precise CAN baud rates, although there is a small sacrifice in RS232 baud rate accuracy. The CAN and I2C interfaces are now on separate pins and the hardware revision information is stored in the DS2502 ethernet MAC chip.
I used the TILT400.Pro (see Fig. 2) with a TStik2 and a JSimm prototype board. I was also able to plug in the 8-by-1 Wire I/O expansion board (see Fig. 3) that includes 8 bidirectional I/O points. The 1-Wire protocol is exclusive to Maxim and you can get a wide range of 1-Wire devices, ranging from digital and analog ports to flash storage devices. Some can even be powered from the 1-Wire bus. They are very handy for remote sensor and control. An on-board DS2433 1-Wire 4-kbyte EEPROM contains boot information.
I downloaded the software from various sources to get the system up and running. The quick reference guide provides the URLs and a one-page walkthrough that will get you going quickly if there are no hitches. It does recommend reading the associated downloaded documentation as well, and that is much more extensive.
The TStik2 implements a standard Java virtual machine (JVM), so it can be used with almost any Java development tool. In fact, Systronix recommends the standard Sun JDK (Java development kit). JavaKit is the key though. It checks the Java and TINI installations and connects to the TINI loader on the JStik2 via the serial port. This gets you to plateau 1 once you know the hardware is working. It is a command line interface, so I was able to view various status information and settings. Of course, the default root password is “tini”. You can also check out the TiniInstaller instead of JavaKit. It is supposed to be easier to use, but I did not get a chance to try it yet.
Systronix provides an Ant XML build file that can be handy if you use Ant. Ant is used by Eclipse and a number of users prefer the Eclipse/TStik2 combination over an editor and command line work. This is eventually what I will do since I use Eclipse already, but for now I finished running through the standard installation process. Make sure your Eclipse settings are correct to access the TINI jar file.
Systronix includes a number of sample programs to test out the TStik2. I started with the standard Hello World, so I hit plateau 2 in minutes, not including the time to download and install the software and documentation. That actually took longer.
Once the Ethernet link to the system was up and running and the Java tools were installed it was programming heaven. The download and debugging process is streamlined, making cross development comparable to any other good cross-development platform. There are no Java restrictions and all the appropriate class libraries could be used. Of course, there is not a display on the system (unless you add one or provide a remote connection to one) so the graphical classes are not appropriate, but just about anything else is.
I did not get a chance to exercise the CAN interface. The serial and Ethernet interfaces were easy to contend with. The built-in support handle DHCP for obtaining an IP address and Java’s standard networking classes work just fine for connecting to a server-based application. Of course, 1.5 Mbytes is not a lot of memory for Java, so don’t go overboard like I did.
The TStik2 is no speed demon so don’t put it up against a 32-bit Ethernet-based microcontroller. However, the TStik2 shines in flexibility and ease of use. Using Java in control applications can help avoid many of the programming pitfalls that C or assembler would incur, and you have the added ability to easily download applets to the TStik2 over the Ethernet connection.