TINI 400 Kit
Weather Station Project
Guide: Prof. Prabhat Ranjan
Kumar Polana Swetha Prabhat Saraswat
Dhirubhai Ambani Institute
of Information and Communication Technology, Gandhinagar
TINI is a small, embedded system designed to run Java(tm)
applications and interface between external hardware and a network.
To start working with TINI, one needs to have the following
TINI Hardware Requirements
- TINIs400 Socket
- TINI Software Development Kit
Version 1.15 (tini1.15)
- JDK (Java Development Kit) – jdk1.1.6
- Java Communications API
Development System Requirements
- 1 RS232 (COM) port
- 115200 baud
- RS232C serial cable DB9 male to DB9 female
- Crossover Ethernet cable
- 5V DC Power Supply
capable of supplying 150mA
The TINI Board Model 400: DSTINIm400
The TINI reference board based on the DS80C400 processor is
known as the DSTINIm400 reference module.
Configuration of DSTINIm400
1MB of nonvolatile, static RAM and 1MB of flash. It is
available as a 144-pin SODIMM module.
DSTINIs400: The Socket for the DSTINIm400
For application development and prototyping, a DSTINIm400
board is not useful without the ability to connect necessities such as serial,
Ethernet, and power. The main function of the DSTINIs400 socket board is to
provide physical connectors to interface the DSTINIm400 with other equipment
such as an Ethernet network, a serial device, or a 1-Wire network.
downloading all the required files, the following connections have to be made.
power is not supplied to the TINIs400 sockets board.
- Insert the TINIm400
Verification Module into the 144-pin connector on the TINIs400 sockets
- Verify that the jumpers with
the labels J4, J6, J10 and J14 are placed on the socket
board as mentioned below.
- J4 (110)
- J6 (110)
- J10 (110)
- DTR Reset (J14)
- TINI uses DTR as a control
signal for reset.
- Attach an RS232 serial cable to
the connector labeled "Loader - Serial 0" on the TINIm400
- Connect the serial cable to a
serial port on the PC.
- Connect the power adapter to
TINIs400 sockets board. A center positive 5V DC regulated power supply
must be used with the TINIs400 sockets board.
- Attach the crossover Ethernet
cable between the PC and TINIs400 sockets board.
- Plug the power adapter into a
3. Running JavaKit
the system is correctly configured to use javax.comm, run JavaKit
- Include the jar file tini.jar in the
- To run JavaKit, go the bin directory
of tini1.15 (/root/tini/tini1.15) and run
java –JavaKit -400 -flash 40
- In JavaKit, select the serial port to
which the serial cable from TINI is attached. If no serial port names
appear in the port name list, this means that javax.comm has not been
baud rate should be set to 115200.
- Press the "Open Port" button.
- Press the "Reset" button.
This will reset the board to the TINI loader. This can be done at any
time to abort slush and all running applications and return to the TINI
- Press E and press return.
Then the Slush will begin booting and text
will appear on the JavaKit screen.
- Press return and a Slush login
prompt will be displayed. Type in the username root and press return. The
initial root password is tini.
- We are now logged into Slush.
To view a list of valid shell commands, type help at the command prompt.
Detailed information on specific commands can be obtained by typing help
followed by the command.
Applications in TINI
- Create the source file. Create
and save a file named HelloWorld.java containing the source code to
display “Hello World” on screen.
- Compile the source file. Compile
HelloWorld.java to a class file using the command javac –target 1.1
the class file. The utility program TINIConvertor performs a
conversion on input, specifically one or more Java class files, and outputs
a binary image suitable for execution on TINI. TINIConvertor is a Java
application that lives in the tini.jar file and is run from a command
shell on the host
HelloWorld.class to a binary image that we can execute on TINI, run TINIConvertor
supplying the three mandatory command line parameters: input file or directory
(-f), API database (-d), and output file (-o).
-classpath /root/tini/tini1.1.5/bin/tiniclasses.jar TINIConvertor -f
HelloWorld.class -d /root/tini/tini1.1.5/bin/tini.db -o HelloWorld.tini
input required by TINIConvertor is the name of the API database distributed in
the SDK. This file is named tini.db and must be supplied with the -d parameter.
Figure 1: Generating
TINI image file from java file
the converted image.
the FTP client provided with the operating system to connect to TINI and
generated in the previous step, to the TINI file.
Now, run HelloWorld.tini
Tini1 />java HelloWorld.tini
Hello World from DA-IICT
The same can
be checked in the JavaKit also
for the First Time
the above-mentioned steps till step # 6 i.e. after getting the loader prompt,
- At the JavaKit prompt, type B0
and press return followed by F0 and return. This clears the RAM of the
TINI Verification Module. Any time a new runtime environment is loaded the
memory should be cleared.
- Now click on the File menu in
JavaKit and select Load File. A file dialog will appear on the screen.
Browse to the <TINI SDK Install Dir>\bin directory and select the
tini_400.tbin file and click the Open button. Load Complete will be
displayed on the screen when the firmware is loaded, this may take up to
- To load the command shell,
click on the File menu and select Load File again. Select the
slush_400.tbin file and click on the Open button. When Load Complete
appears, slush has been successfully loaded into the flash of the TINIm400
- Press the reset button and the
JavaKit loader prompt shown in Figure 1 will be displayed.
- At the JavaKit prompt, type E and hit return.
- Type in the username root and press return. The initial
password is tini.
- Now, we can run Java applications after logging in as
Table 1. Default
User Accounts for Slush
with 2 TINIm400 modules, the hostnames being TINI1 and TINI2.
with TINI1, to use another module, the JavaKit need not be restarted again.
Just remove the first module from the socket, connect the second module in the
same socket and press ‘Reset’ in the JavaKit. After logging in, slush returns
a prompt comprised of the host name, TINI2. Now, we can work on TINI2 in a
Use the slush
command “ipconfig” to set network configuration information. We can use the –d
option to dynamically obtain an IP address and subnet mask as well as several
other network parameters. For static network configuration, the following command sets the IP address and subnet
TINI /> ipconfig -a 192.168.0.22 -m 255.255.255.0
loading the files tini_400.tbin and slush_400.tbin, they were loaded
successfully but the following message was displayed before ‘Load Complete’.
interrupted in drain’
After typing E (enter), the slush
was not loaded properly and the login prompt was not displayed. Then we used
the debug port option to find out the problem and realized that the boot loader
was dead. The TINIs400 socket board has a debug port option for diagnostic
messages. This debug port (connected to port pin P5.2) is a write-only
pseudoserial port and does not use any of the serial ports of the TINI400
system. The debug port is shared with the status LED on the TINIm400, so the
LED flickers when the debug port is used. Connect the diagnostic port J6 to the
display the debug messages on the PC, we can use JavaKit or any other terminal
program set to 115200, 8N1. Load tini_debug_400.tbin instead of tini_400.tbin.
We can switch between these two firmware versions without clearing the
Since there was a problem of
deadbootloader, we loaded a new boot loader onto the TINI using the option
‘UpdateLoader’. The file ‘LoaderLoader.hex’ has to be downloaded Go the file
menu and find the option ‘UpdateLoader’ and load the file ‘LoaderLoader.hex’.