TStik
TiniOS Versions
TINI400 in the familiar
SIMM72 module
package

TStik is powered by Dallas Semiconductor TINI


All tini based software has to be rebuilt for each TiniOS version that software is to run on. This document will help explain the process of updating Tini software and firmware. This was written some time ago for 1.12, but the same idea applies to the current version, available from Dallas/Maxim, through a link at the top of this page http://www.tstik.com/downloads.html

Why your TiniOS version is important:
Tini executables are not compatable between TiniOS releases. As a result, if you develop applications with a different SDK than is installed on your Tini, you will get internal errors when you attempt to run them. You do not need to re-compile your java source files, but will need to rebuild your files with TiniConverter, BuildDependancy or TiniAnt to produce a new .tini or .tbin file for execution from either the tini file system, or flash. Also, if you have any native libraries with a version mismatch, your tini or TStik will simply reset and erase all your files when you attempt to run native code.

How to identify your TiniOS version:

To identify the TiniOS running on a TStik or Tini, watch the startup messages in Javakit when the device starts up. the version will be listed just after the TINI Boot message as shown below.

----> TINI Boot <----
TINI OS 1.12

An alternate method of identifying your TiniOS is to use the "stats" command from Slush as demonstrated below.

TINI /> stats
TINI slush Version 1.12
TINI OS 1.12

This shows that my TStik currently has Tini OS 1.12 installed. The slush version does not match the TiniOS version for pre-releases. This is not a problem so long as you remember to install both Slush and the TiniOS whenever you update your firmware. Note that other information will be displayed that is not important for determining your OS version.

To identify the version of your SDK, first look in Versions.txt of your TiniSDK doc folder. It will tell you what the last stable release of the TiniOS was. If this version matches the name of the TiniSDK, Tini1.12 for example, this is the version of your Tini SDK. If your tini directory number does not match the name of your Tini directory, you are probably using a pre-release. In this situation, you will have to look at the Pre-release_Notes.txt file to identify your TiniOS pre-release version. It will be printed at the top of the file.

TiniOS Versions for TStik:
Important Note: TStik is fully TINI400 OS compatible, so it uses the latest version of the TINI400 OS from Dallas/Maxim. There is no "special" OS for TStik. TStik uses the same TINI400 OS as the Dallas reference boards. TStik has been tested and approved by Dallas as TINI-compatible.
Version XXX (the most recent) Get the most current version from Dallas/Maxim, a link to which is at the top of this page: http://www.tstik.com/downloads.html
Version 1.17 2005 Dec
Version 1.12 The goal of this document is to show users how to update their firmware to this version
Version 1.12p14 This pre-release was made available after 1.12p9. It was not installed on any TStiks by Systronix.
Version 1.12p9 This TiniOS release was installed on a number of TStiks. It is no longer available, instructions for upgrading are included below.
Version 1.11 This TiniOS release was installed on the first TStiks sold. It does not include javax.comm serial4 support. Instructions are included below for upgrading to TiniOS version 1.12
Version 1.11p8 This pre-release was used internally to develop TStik test code. It has been shown to run on TStik, but does not include serial4 support.

Updating your TStik firmware:

Updating your TStik firmware is a relatively simple process because the serial loader is implemented in ROM and cannot be changed and does not need to be updated.

First, make sure your socket board has the DTR jumper installed. This should be the manufactured posistion for all Systronix socket boards, including Tilt, Tilt.400 and Step. Next connect your PC serial port to serial0 on the socket board and make sure your TStik is installed fully in the Simm72 socket. Next, apply power to the board. Start Javakit from your PC with the "-400 -flash 40" command line switch. Select your port and press the "Open Port" button. Press the Reset button to open the serial loader. You should see a prompt like this:

DS80C400 Silicon Software - Copyright (C) 2002 Maxim Integrated Products
Detailed product information available at http://www.maxim-ic.com

Welcome to the TINI DS80C400 Auto Boot Loader 1.0.1

>

After you see this prompt, go to file->Load File in the Javakit menu bar and browse to your Tini SDK bin folder. From there, open tini_400.tbin. Do not type any characters into Javakit while it is loading the file. This will cause the file load to fail. Next, load Slush_400.tbin. After this is completed, type the "E" command into the loader to start your new TiniOS and Slush firmware.

Remember that your filesystem will probably be erased as part of this process, but even if it is not, you will have to rebuild all your executables with the new Tini SDK. This process is simplified by using TiniAnt because all you will have to do is update your TINI_HOME environment variable and run your build.xml scripts to rebuild these files.

You must also rebuild or get updates for all your .tlib native libraries. This process is somewhat more complicated because you will have to use the .inc files from your new native/lib directory as assembly code include files. Dallas native libraries are included in the SDK. Get updates to Systronix native libraries from downloads.html


Updating your Tini 390 firmware:

Updating your Tini390 firmware will include the additional step of updating the loader. This can be especially painful because every pre-release and release of the TiniOS between 1.02f and 1.12 has required a loader update. You can run an earlier version of the TiniOS like 1.02f with a new loader like the one for TiniOS 1.12, but cannot run a new OS like 1.12 with an old loader, like the one for TiniOS 1.12p14.

In addition, each TiniOS release only contains new loader programs built for three TiniOS versions, although many more TiniOS versions are currently released. As a result, the first step to updating to 1.12 from any version other than 1.10, 1.11 or 1.02f is to roll your TiniOS back to 1.02f. This version of the TiniOS will work with all known versions of the loader, so it is the best choice.

You can still get 1.02f from the Dallas link from downloads.html. Once you have this sdk, skip to the next step and follow the instructions for loading tini.tbin and slush.tbin. Note that this release is from before DS80C400 versions of the TiniOS were released, so there is only one version of these files.

After you roll your OS back to 1.02f, start Slush. Log in with username root, password tini. Run the ipconfig command to give your Tini an IP address and connect it to a PC using Ethernet. After this has been done, ftp thetini1.12\bin\tini1.02f directory to your Tini390 module.

After the tini1.02f directory has been loaded, log in to slush using Telnet. It is tempting to just run the program from Javakit, but this will fail because a loader confirmation prompt in the LoaderLoader program will not be displayed to the serial terminal. Once again, log in using username root, password tini. change directories to the location of LoaderLoader.tini. Finally run the command:

java LoaderLoader.tini tini112-bank0.tbin2

from Slush. A confirmation prompt will appear asking you to type YES in capital letters to continue. Do so now. It is very important that you do not reset your tini, or disconnect power while the loader is being updated. This will result in many "no response from tini board" messages when you try to reset your tini to load TiniOS 1.12.

After you get the message saying the loader update is complete, reset your tini in javakit and move to the next step.

After updating the serial loader, you must still actually load the TiniOS files onto your TINIm390 module.

First, make sure your socket board has the DTR jumper installed. This should be the manufactured posistion for all Systronix socket boards, including Tilt, Tilt.400 and Step. Next connect your PC serial port to serial0 on the socket board and make sure your TStik is installed fully in the Simm72 socket. Next, apply power to the board. Start Javakit from your PC with no command line parameters. Select your port and press the "Open Port" button. Press the Reset button to open the serial loader. You should see a prompt like this:

TINI Software - Copyright (C) 1999-2002 Maxim Integrated Products
Detailed product information available at http://www.maxim-ic.com

Welcome to the TINI Boot Loader 1.1 L1.

>

After you see this prompt, go to file->Load File in the Javakit menu bar and browse to your Tini SDK bin folder. From there, open tini112-bank1to6.tbin. Do not type any characters into Javakit while it is loading the file. This will cause the file load to fail. Next, load Slush.tbin. After this is completed, type the "E" command into the loader to start your new TiniOS and Slush firmware.

Remember that your filesystem will probably be erased as part of this process, but even if it is not, you will have to rebuild all your executables with the new Tini SDK. This process is simplified by using TiniAnt because all you will have to do is update your TINI_HOME environment variable and run your build.xml scripts to rebuild these files.

You must also rebuild or get updates for all your .tlib native libraries. This process is somewhat more complicated because you will have to use the .inc files from your new native/lib directory as assembly code include files. Dallas native libraries are included in the SDK. Get updates to Systronix native libraries from downloads.html

How not to update your firmware: a reason to use a DS80C400 module like TStik instead of the 390.

The first time I updated a 390 to TiniOS version 1.12, I did not know that I had to update the loader from version 1.11. The Tini I happened to be using happened to be running 1.11 and my Tini 1.11 SDK happened to be version 1.11p8. As a result, I first attempted to load TiniOS 1.12 without updating the loader. I repeatedly got "No user code found" errors and was confused. I then opened the 1.12 bin folder and found that there was a loader update included for TiniOS1.11.

I was surprised a loader update was needed, but decided to do it anyway. At some point, loader updates may no longer be neccesary. The documentation always refers to the 1.1x loader, so at some point they should stop changing. I then ran the loader program for 1.11p8 thinking it was 1.11 because I did not double-check my Tini sdk version. As a result, I was trying to run a 1.11p8 program on a 1.11 tini and got several error messages. Incorrectly thinking that my OS had become corrupted somehow, I decided to re-load the firmware. Only then did I realize that my SDK was 1.11p8 and its programs would not work on the 1.11 tini I was using.

I then realized that my 1.12 LoaderLoader program had no build for 1.11p8 and loaded my 1.02e firmware onto the board. There was no loader update to Tini1.12 from 1.02e either. In retrospect, I probably could have mixed the 1.12 loader image with the 1.02e loader program from 1.11 and been fine, but instead I decided to update to 1.11 and then 1.12.

I had been using Javakit from 1.11, so I had to close it to do this. It turns out that there are also some subtle improvements in Javakit between 1.11 and 1.12 as well. After loading the 1.11 firmware, I was unable to run the TiniOS. The reason for this turned out to be that I had re-loaded the 1.11p8 loader with 1.02e when I still thought I had the 1.11 sdk. As a result my OS would not run.

I finally rolled my OS back to 1.02e again, loaded the loader for 1.11, reloaded 1.11, loaded the loader for 1.12, loaded TiniOS 1.12 and was finally done. I had made the relatively simple task of updating my firmware as complicated as possible. I had also risked damaging my loader and creating a "no response from tini board" situation about half a dozen times. Fortunately, I was not too worried about this because we have everything we need to repair a broken loader here.

 
Systronix® 939 Edison Street, Salt Lake City, Utah, USA 84111
contact us
 

Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
Systronix is independent of Sun Microsystems, Inc.
TStik, JStik, JCX, JStamp, JSimm, JDroid, and JRealTime are trademarks of Systronix, Inc.
1-Wire, iButton and TINI are trademarks of Dallas Semiconductor
Simmstick is a trademark of Dontronics