MX Source Code Packages

The source code to MX is now available for download. It is available under the terms of an MIT X11 or XFree86 style license.

The MX system is distributed in several source code packages. The version numbers for the packages reflect the version of MX that was current when the package was released. This means that not all of the packages will have the same version number as MX. In general, download the version of each package that has the highest version number. The Subversion repositories for MX may be found here.

Core Packages

MX
Required for everything else. This includes the MX library libMx, the application programs motor, mxserver, and mxupdate, and a set of example programs.
Current version: mx-1.5.0.tar.gz (2878 kbytes) Change log
Mxplot
This is Jim Fait's BLT-based replacement for plotgnu. It add x-y cursors, the ability to zoom, and a button for printing the plot. Currently, it only works on Linux and Unix platforms.
Current version: mxplot-0.65.0.tar.gz (19 kbytes)
Test databases
This is an example MX database that simulates much of the functionality of an old version of the APS Sector 17-ID beamline by the use of simulated motor, scalers, timers, etc. It is meant to be unpacked in the $MXDIR/etc directory of your installed copy of MX. The sets of simulated scalers included with the packages will allow the execution of a simulated scan over the Cu K-edge or the optimization of the omega motor.
Current version: testdb-aps17id-1.4.0.tar.gz (13 kbytes),  

Language Interfaces

MP
A Python based interface to the MX control system. Includes several example scripts demonstrating the use of MP. Requires Python 1.5.2 or above.
Current version: mp-1.5.0.tar.gz (102 kbytes) Change log
MpWx
A package of WxPython-based GUI classes that provide widgets for monitoring and changing the values of MX network variables via MP. MpWx should run on any platform that supports both MP and WxPython.
Current version: mpwx-1.5.0.tar.gz (3 kbytes)
MxTcl
A Tcl based interface to the MX control system. Includes the generic mxgui program. Requires Tcl/Tk 8.3 or above and [incr Tcl] 3.1 or above.
Current version: mxtcl-1.5.0.tar.gz (78 kbytes) Change log
Mxtclnet
A small package written in pure Tcl that allows Tcl/Tk programs to directly connect to an MX server. Includes the mxget and mxput programs.
Current version: mxtclnet-0.65.0.tar.gz (6 kbytes) Change log

General Applications

Mpvideo
An interactive crystal alignment GUI that allows users to reposition their crystal sample by clicking on a window displaying a video image from a camera pointed at the sample. Requires the MX and MP packages.
Current version: mpvideo-0.65.0.tar.gz (8 kbytes) Change log
Optimize
A simple X-ray beamline optimization GUI used at several APS sectors. Requires the MX and MxTcl packages.
Current version: optimize-1.1.1.tar.gz (40 kbytes) Change log
Optimize Auto
An optimization GUI with beamline staff modifiable scripts that can perform several optimizations in a row. Requires the MX and MxTcl packages.
Current version: optimize_auto-1.1.0.tar.gz (9 kbytes) Change log

Crystallography Applications

MX MarCCD Interface
This program can be used as the external goniostat program for a MarCCD detector system on an MX controlled beamline. On some MX controlled beamlines, it is used to command the motor moves and shutter commands necessary to take CCD image frames. The README file describes this package in more detail.
Current version: mx_marccd_interface-1.1.0.tar.gz (13 kbytes) Change log
MX Blu-Ice Server
This program provides a Blu-Ice DHS and/or DCSS server interface for MX controlled devices.
Current version: mx_bluice_server-1.5.0.tar.gz (49 kbytes)
Imcagui
Imcagui is a user oriented GUI for beamline control of protein crystallography beamlines used at APS Sectors 17-ID and 17-BM (IMCA-CAT), APS Sector 22-ID (SER-CAT), and at APS Sector 5-BM (DND-CAT). Requires the MX and MxTcl packages.
Current version: imcagui-1.1.0.tar.gz (58 kbytes) Change log

Miscellaneous

MX Examples
This package contains a set example programs that introduce the basics of how to write new MX application programs. Two of the examples are C programs that show how to implement simple steps scans either with or without using an MX scan record. The package also contains versions of these examples written in Python and in Tcl.

Note: The examples are now distributed as part of the main MX tar file.

Portio
Portio is a Linux device driver module that allows a user mode program to perform port I/O to a restricted range of I/O ports without requiring the program to be setuid root or setgid kmem. The I/O port ranges allowed are specified by command line arguments via insmod, /etc/modules, and so forth. This device driver is used by the MX linux_portio driver. The README file for Portio describes the package in greater detail.
For Linux 2.4.x and 2.2.x use portio-2.0.tar.gz (7 kbytes)
For Linux 2.0.x use portio-0.3.tar.gz (7 kbytes)
Portio has not yet been ported to Linux 2.6.x.
Other MX application packages may be found here.


Last modified by lavender@agni.phys.iit.edu on November 16, 2008.