Siemens TC65 Development Under Linux
Siemens does not support TC65 development under Linux, but all of the
necessary tools for development are available under Linux. You'll
need to go through the Siemens installation process on a Windows
machine to extract the one file you need for development under Linux:
- Install the TC65 Java Development Kit under Windows. This
requires a PC with a serial port running Windows, or Windows
running under VMWare configured to have
serial port access. I tried installing it
under Wine 0.9.24, and the installer runs fine until it asks
for a serial port. The installer can't find any serial ports,
even though I had a working serial port under Wine. It is not
necessary to connect the TC65 to the serial port during
installation.
- The Sun JDK must be installed first. Install the 1.4.2
JDK provided by Siemens. The SMTK installer will not allow
installation unless a JDK has been installed.
- Install the Siemens Mobility Toolkit (SMTK) by running
its setup.exe. It will warn you that an IDE is not
installed. It is not necessary to install an IDE; select 'continue
the setup without IDE integration.'
- After the installation is complete, copy the file
WTK/lib/classes.zip from the SMTK installation directory to
your Linux system. This is the only file that's necessary
from the SMTK to build TC65 applications. If you're new to
TC65 development, you might also want to grab the
WTK/src/examples directory and WTK/bin/build.bat.
- Install a Java 1.4.2
JDK on your Linux system if you don't already
have one. Version 1.6.6 is reported to work.
- Install the Sun Java
Wireless Toolkit 2.2 from Sun. This
provides Linux versions of necessary tools such as 'preverify'.
Version 2.2 is no longer available from Sun, but version 2.5.2 is
reported to work.
At this point, it's possible to build the TC65 example programs under
Linux, but Siemens only supports transferring code to the module with
OTAP or via the serial port under Windows. However, the TC65 has an
OBEX server running on the serial port which is activated with an
undocumented AT command. With some minor modifications, ObexFTP can
transfer files to the TC65. I used version 0.18, as newer versions
had dependencies my SuSE 9.3 system couldn't satisfy. ObexFTP
requires OpenOBEX, which you
may already have installed. The necessary changes to ObexFTP are:
- Change the baud rate in bfb_io.c:bfb_io_open() to 115200
- Also in bfb_io.c:bfb_io_open(), add a "goto newsiemens;" after the
response to the ATZ command has been read. ObexFTP already
supports the necessary command to put the TC65 into OBEX mode, but its
attempt to probe for other phone and protocol types causes
the two to get out of sync.
- Just prior to closing the file descriptor in
bfb_io.c:bfb_io_close(), add a call to write() to send a
+++ string to exit OBEX mode. There should be a one-second guard
time (sleep (1);) prior to sending the +++.
ObexFTP must use the Siemens UUID when communicating with the TC65;
this is requested by specifying '-U sie' on the command line. A
typical command line looks like:
obexftp -t /dev/ttyS0 -U sie -l
The TC65 interprets an OBEX PUT as an append operation, so it's
necessary to delete a file before copying it. The delete and copy can
be done with a single command:
obexftp -t /dev/ttyS0 -U sie -k app.jar -p app.jar
If you accidentally do an append, the TC65 will give an ERROR response
when trying to start the application.
If your TC65 has a USB port available (e.g., the DSB75), Linux will
identify the TC65 as a modem, and allocate a TTY device for it
(/dev/ttyACM0 on my SuSE system). The USB port also has an OBEX
server running on it, and can be used just like a serial port:
obexftp -t /dev/ttyACM0 -U sie -l
Make sure you have read/write permissions on the USB TTY device.
Note that it's not necessary to use ObexFTP's USB support, and this
support probably won't work with the TC65 without further
modifications. I haven't been successful getting PUT operations to
work over the USB interface.
The OBEX server seems to have difficulties if multiple sessions are
started too close together. Starting an OBEX session less than about
three seconds after the previous session can cause the OBEX server to
lock up, requiring a power cycle of the TC65.
Other TC65 Development Resources
dev65 Mailing List
Updates
Johann Wilhelm notes: to get the serial-port running in wine you have to add some to the
registry...
in your wine.inf you need this:
[Misc]
...
HKLM,HARDWARE\DEVICEMAP\SERIALCOMM,,,""
wineprefixcreate should now create this key in your registry... then add in
HKLM/HARDWARE/DEVICEMAP/SERIALCOMM a key named \Device\Serial0 with the
value COM1
now the installer knows that this port is present.. windows does it like
this but wine doesn't since a few years...
I haven't tested this.
None of the content on this page is supported or sanctioned by Siemens.
Copyright © 2006 John Temples (tc65 at xargs dot com)