3M Touch Systems, Inc.
TouchWare for Linux

Version 5.64, April 2006
Copyright 2001-2006 3M. All rights reserved.

---------------------------------
PRODUCT SUMMARY
---------------------------------
TouchWare for Linux is the software for your 3M Touch Systems touch
screen. It allows you to select, launch, and drag objects using the
touch screen.

TouchWare provides full touch screen functionality for all applications
running under Linux 2.4 and 2.6 kernels running XFree86 4.

---------------------------------
FEATURES AND ENHANCEMENTS
---------------------------------
* Added multiple monitor support.
* Added support for the  MicroTouch IST and DST series touch screens.
* Added support for kernel 2.6.
* Changed distribution from a tar.gz file to an RPM. This eases the
  installation of the product.
* Added support for the  MicroTouch SC series USB touch screens.
* Moved the automated searching of the serial ports for touch controllers
  from kernel driver to an optional daemon program. This eliminates
  conflicts and workarounds found in systems that run Red Hat Fedora Core 2
  or 3 and with systems that do not have serial ports. This also eliminates
  some delays in booting the system.
* Added support of init scripts that automatically install the driver and
  modify the XF86Config file. This eliminates the manual setup used in
  previous versions.

---------------------------------
RETRIEVING THE FILES
---------------------------------
* TouchWare for Linux is a binary RPM file. This file contains a kernel driver,
  a calibration tool, a multiple monitor configuration tool and an X input 
  module. The kernel driver is specially built against particular Linux 
  distributions.

* Make sure you obtain the RPM that matches your distribution when you
  download the package. If you have a distrbution that is not support or
  if you have upgraded your kernel, you should not use the ready-to-run
  RPM. Contact technical support at us-ts-techsupport@mmm.com.

---------------------------------
INSTALLING THE DRIVER
---------------------------------
* Open a terminal window if you are not already at a command line prompt.

* Change your working directory to the location of the RPM file.

* Issue the command "rpm -i TWDrv<version>.rpm" where <version> is the rest
  of the RPM file name.

---------------------------------
UNINSTALLING THE DRIVER
---------------------------------
* Open a terminal window if you are not already at a command line prompt.

* Issue the command "rpm -e TWDrv". This command does not remove the kernel
  module. To finish the uninstall, you need to reboot the system.

---------------------------------
RUNNING THE CALIBRATION UTILITY
---------------------------------
* The calibration utility is named TwCalib and is in the directory
  /etc/twscreen/TwCalib. This program may be moved to any location
  for your convenience, for example /usr/bin.

* Run this program with the command "/etc/twscreen/TwCalib/TWCalib" or
  equivalent to calibrate your touch screen. Note that this is an
  X Windows program and must be run while the X Server is running.

* TWCalib presents two targets (three for some SC controllers), one at a
  time, for you to touch. Touch these targets to calibrate the touch screen.

* TWCalib now has multiple command line arguments. To get information on 
  command line arguments issue "/etc/twscreen/TwCalib/TWCalib -?". Most of 
  the arguments are used to override programs default behaviour in multiple
  monitor situation, But, if multiple monitor configuration is correctly
  done TWCalib does not require any arguments.

* In multiple monitor setup, you must configure the touch screens prior to
  running TWCalib. Refer to section "MULTIPLE MONITOR SUPPORT" for 
  instructions.

* There is one command line argument for TWCalib that specifies the device
  to which the touch screen controller is attached. The default is
  /dev/twscreen1, which is the first touch screen controller supported by
  the driver. You may specify other devices as appropriate, such as
  /dev/ttyS0.

* If the calibration utility fails to open a port even if it appears touch is
  working, there are two known issues. The first issue is that the SC USB
  controllers are supported and recognized by the HID module provided by
  kernel. This module conflicts with the TouchWare kernel module. The second
  issue is a conflict with the "mtouchusb" module. To resolve this situation,
  refer to "DISABLING HID SUPPORT" and "KNOWN ANOMALIES" sections below.


---------------------------------
MULTIPLE MONITOR SUPPORT
---------------------------------
* TouchWare 5.64 now supports multiple monitor configurations.

* Before you start with touch screen multimonitor configuration, you have to
  identify video display configuration. This includes number of displays, and
  their physical position with regard to touch screens. System information 
  about video displays is usually located in the Xwindows configuration file.
  In case of clones (same image on all displays) multiple monitor configuration
  is not required. 

* All touch screens have to be attached and the system rebooted before 
  proceeding to next step.
 
* The multi-monitor configuration utility is named MultiMonitorTool and is
  found in the directory /etc/twscreen/TwCalib. This program may be moved to
  any location for your convenience, for example /usr/bin.

* Run this program with the command "/etc/twscreen/TwCalib/MultiMonitorTool"
  or equivalent to configure your touch screen mapping. Note that this is a
  command line program and must be run in terminal window.

* MultiMonitorTool will present previous configuration (if available) and 
  ask permission  to continue. Next, it will ask how many video displays and
  touch screens are present on the system. This tool relies on you to enter
  correct numbers.

* Next, the tool will ask you to touch every touch screen (one at a time) and
  enter the number of each display. For example, if you have two displays and
  two touch screens, touch the primary display and enter 0, then touch the 
  second display and enter 1.

* After all information is entered, you have the option to save configuration
  or discard it. After saving new configuration, you have to restart X server
  or reboot the system.

* If the tool fails to start, confirm that the driver is installed.

* If the tool doesn't recognize your touch when you are touching the screen, it
  usually means one of the touch screens is captured by the HID or "mtouchusb"
  module. To resolve this situation, refer to "DISABLING HID SUPPORT" and 
  "KNOWN ANOMALIES" sections below.

---------------------------------
TOUCH MODE SETTINGS
---------------------------------
* TouchWare 5.64 now supports diferent touch modes. The available touch Mode
  options are Draw, Touchdown and Liftoff. Default mode is Draw. To set touch
  mode you need to add one of these three lines to Config file.

    Option "TouchMode" "draw"
    Option "TouchMode" "touchdown"
    Option "TouchMode" "liftoff"
   
---------------------------------
DISABLING HID SUPPORT
---------------------------------
* SC series controllers are HID compliant devices therefore they are 
  recognized by HID kernel module. This module does not correctly support the
  MicroTouch devices and conflicts with the TouchWare kernel module. To 
  resolve this conflict, recompile the HID module and include the MicroTouch 
  devices in module's black list. MicroTouch's vendor ID is 0x0596 and the 
  device IDs are 0x0100 for the SC400 and SC800 controllers, 0x0102 for the
  SC500 controller, 0x0200 for IST controller, and 0x0300 for DST controller.

---------------------------------
HANDLING MONITOR ROTATION
---------------------------------
* Most monitors are used in landscape mode, where the display is wider than
  it is tall. This is the normal situation. If your system is like this, you
  should not need to make any adjustments. However, if your display is oriented
  differently, such as in portrait mode where the display is taller than it is 
  wide, follow the instructions below to add options to the "InputDevice" 
  section.

* First, always test your system without making any adjustments. Calibrate the
  touch screen. Touch the display in a corner. If the cursor appears under your
  finger, then you need no further changes. Otherwise, follow these steps.

* In the "InputDevice" section, add the option "AutoRotate" and set it to "off".
  Save the changes and restart the X Windows server. Calibrate the touch screen
  and test a corner. If the touch is still off, proceed to the next step. The
  line you need to add to turn autorotation off is as follows.

    Option "AutoRotate" "off"

* Finally, keeping the "AutoRotate" option "off", add the option "Rotate" and
  give it a value of "CW", "CCW", or "UD". Use "CW" if your monitor is rotated
  90 degrees clockwise, "CCW" if your monitor is rotated 90 degrees
  counterclockwise, and "UD" if your monitor is upside down. Save the changes,
  restart the X Windows server, and calibrate the touch screen in normal
  landscape mode. You need to add one of these three lines.

    Option "Rotate" "CW"
    Option "Rotate" "CCW"
    Option "Rotate" "UD"


---------------------------------
KNOWN ANOMALIES
---------------------------------
* The calibration utility uses the library libstdc++.so.5. You need to
  download and install a package with this version, that supplies this 
  library if it is not already on your system. The RPM cannot install 
  until this is installed.

* The calibration utility uses X window functionality to detect display
  resolution. In multiple monitor situation with Clone or Xinerama options
  enabled calibration could ,in certain situations, display calibration
  targets in wrong places. We recommend you edit the Xwindows Config file
  (FX86 Config) to turn off the Clone and Xinerama options, calibrate the
  touch screens, and change Xwindows Config file to previous state.

* At this time, there are versions of the X Input module that are built
  against XFree86 versions 4.0.3 and 4.1.0. The version built against
  XFree86 version 4.1.0 also works on systems using versions 4.2.0 and 4.3.0.

* The driver requires exclusive access to the serial port’s IRQ. If the IRQ
  must be shared, the driver may not work. If you need shared access, you
  need to edit the init script /etc/init.d/TWDrvStartup. Locate the line
  that defines the variable SEARCH_OPTIONS. Change the argument "-iexclusive"
  to "-ishared".

* In some Linux distributions, the "mtouchusb" module is enabled to support
  MicroTouch devices. This module conflicts with the TouchWare kernel module.
  To resolve this problem, disable the "mtouchusb" either in the kernel or
  simply delete it from kernel modules tree. 
___________________________________________________________________________

MicroTouch, the MicroTouch logo, and TouchWare are either registered
trademarks or trademarks of 3M in the United States and/or other countries.

Linux is a registered trademark of Linus Torvalds in the U.S. and/or other
countries.

X Window System is a trademark of X Consortium, Inc.

Red Hat is a registered trademark of Red Hat, Inc.

Fedora(TM) is a trademark of Red Hat, Inc.
___________________________________________________________________________