Newport ESP300
==============

Serial communication using the GreensSpring XM Octal I/O.
---------------------------------------------------------

The GreensSpring XM Octal I/O has a 16 pin jumper block for each serial port.
Assume (the manual does not define this) that the jumper pins are numbered
from, top to bottom, and from left to right; i.e.,
    1  2  3  4
    5  6  7  8
    9 10 11 12
   13 14 15 16
   
Then the "Default jumbering ..." depicted in Fig. 2 of the GreensSpring XM
Octal I/O manual is jumpered as follows; 1-5, 2-6, 9-13, 10-14.

The correct jumpering for the ESP300 is; 1-5, 2-6, 9-13, 10-11, 15-16.


Setting the motor resolution (MRES) field.
------------------------------------------

Set the MRES like any other motor; i.e., to the precision of the stage.
(Prior to motor module R6.8, the driver used the controllers resolution
to scale the EGUtoRAWbacktoEGU conversion done between motor record and
device driver support. With R6.8 the driver uses the motor record's MRES
to scale the conversion).

Newport ESP100
==============

Configuration
-------------

- Unlike the ESP300, the ESP100 must be told what type of motor it is connected
to.  This is done using the "Set Motor Type" command; QM.  "QM" arguments are
as follows:
0 - motor type undefined (default).
1 - DC servo motor.
2 - stepper motor.
3 - commutated stepper motor.
4 - commutated brushless DC servo motor.
After setting the motor type, the value must be saved to non-volatile memory
using the "SM" command.

Example
-------

Setting and saving an ESP100 for use with a DC servo motor driven stage (e.g.,
850G);

        1QM 1<CR>
        SM<CR>


Newport MM4000
==============

The MM4000 controller has an approximately 50ms delay before it responds to a
status query.  Hence, it is impossible to get more that a 20 Hz update rate
from the MM4000; 7 or 8 Hz is attainable.  This 50ms delay exists with both
RS232 and GPIB communication interfaces.


Newport PM500
=============

The PM500 has high and low speed loops. Since the EPICS PM500 device driver
does not set any of the low speed parameters (i.e., LSIZE, LACCEL, LDECEL, LV),
the low speed loop feature may interfere with EPICS setting the slew velocity.
I recommend preventing the PM500 from ever using the low speed velocity loop by
setting the Low Speed Loop Threshold (LSIZE) to the motor record's Retry
Deadband field (RDBD).

The LSIZE can be set from the EPICS motor record by entering the PM500 command
in the record's INIT field.  LSIZE is in units of either um or arc-sec.  For
example, if your RDBD = 0.123 mm, then set the INIT field to "LSIZE 123.0".


Newport SMC100
==============
The SMC100 controller has a fixed baud rate of 57,600.  This means that it
cannot be used with the IP-Octal232.  If you want to use it from a vxWorks ioc,
you will need to connect it via a Moxa or similar.  I have tested this code on
both Linux and Cygwin soft ioc's.  The stage I tested it with is a GTS30V.
Initially, the controller needs to be connected to the stage it will be running,
and then configured with Newport's software.  I used Newport's PC program called 
"SMC100 User Tool", which allows for the controller to set and keep all of the 
settings for the stage.


********************************************************************************
What's what in this directory
-----------------------------

misc EPICS stuff
----------------
NewportRegister.cc
NewportRegister.h

Model 2 asyn driver
-------------------
XPSAsynInterpose.c
XPSAsynInterpose.h
drvXPSAsyn.c
drvXPSAsyn.h
tclCall.cc
tclCall.h

asyn-model-independent
----------------------
drvXPSAsynAux.c (non-motor aspects of XPS controller)

Model 3 asyn driver
-------------------
XPSAxis.cpp
XPSAxis.h
XPSController.cpp
XPSController.h
SMC100Driver.cpp
SMC100Driver.h
SMC100Register.cc
SMC100Register.h

support code common to models 2 and 3
-------------------------------------
XPS_C8_drivers.cpp
XPS_C8_drivers.h
XPS_C8_errors.h
strtok_r.c
strtok_r.h
Socket.cpp
Socket.h
asynOctetSocket.cpp

Model 1 device support
----------------------
devESP300.cc
devMM3000.cc
devMM4000.cc
devPM500.cc


Model 1 drivers
---------------
drvESP300.cc
drvMM4000Asyn.c
drvMM4000Asyn.h
drvMM3000.cc
drvMM4000.cc
drvMMCom.h
drvPM500.cc

other - Note the XPS Model 3 driver has built-in trajectory scanning.  XPS_trajectoryScan.st is
      - for use with the Model 2 XPS driver.
-----
trajectoryScan.h
xps_ftp.c
xps_ftp.h
XPS_trajectoryScan.st
MM4005_trajectoryScan.st

test code
---------
XPSGathering.c
XPSGathering2.c
XPSGatheringMain.c
XPSGatheringRegister.c
