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 Package

Required for everything else. This includes the MX library libMx, the application programs motor, mxserver, and mxautosave, and a set of example programs.
Current version: mx-2.0.0.tar.gz (3637 kbytes) Change log

Language Interfaces

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. Not yet ported to Python 3.x.
Current version: mp-2.0.0.tar.gz (115 kbytes) Change log
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-2.0.0.tar.gz (4 kbytes) Change log
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-2.0.0.tar.gz (80 kbytes) Change log
A small package written in pure Tcl that allows Tcl/Tk programs to directly connect to an MX server. Includes TCL versions of the mxget and mxput programs.
Current version: mxtclnet-1.5.4.tar.gz (6 kbytes) Change log

Area detector-related Applications

This is an MpWx-based GUI for controlling an area detector via MX.
Current version: mpad-2.0.0.tar.gz (47 kbytes) Change log
MX AD tools
This is a collection of small C programs for working with the SMV format 2-D images typically produced by MX-controlled area detectors. Programs are provided for converting between SMV and NetPBM format for image viewers, as well as a converter from EDF format to SMV format. Also, programs are provided to create constant intensity SMV images for test purposes.
Current version: mx_ad_tools-2.0.0.tar.gz (7 kbytes)
The MX version of SMV format is similar to ADSC and Bruker versions of the SMV format, so MX SMV images are often readable by programs that can read ADSC or Bruker SMV images.
MX MarCCD 'goniostat' 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_goniostat-2.0.0.tar.gz (14 kbytes) Change log

Other GUI Applications

This is an MpWx-based GUI for controlling a multichannel analyzer via MX.
Current version: mpmca-2.0.0.tar.gz (11 kbytes)

External Control System Interfaces

This is a Python-based client interface to EPICS Channel Access via the MP module.
Current version: mpca-2.0.0.tar.gz (13 kbytes) Change log
A package of WxPython-based GUI classes that provide widgets for monitoring and changing the values of EPICS PVs.
Current version: mpwx_ca-2.0.0.tar.gz (2 kbytes)
MxCa Server
This program implements an EPICS server using the Channel Access Server (cas) library to provide the server-side EPICS communication and the libMx library from MX to provide the drivers. The mxca_server program currently provides emulations of the EPICS Motor and Scaler records.
Current version: mxca_server-2.0.0.tar.gz (46 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-2.0.0.tar.gz (54 kbytes) Change log


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
Simulated device database
This is a set of database files that is routinely used for testing of new versions of MX. It includes an emulated area detector, multichannel analyzers, motors, scalers, and multichannel scalers. It also includes a simplified example of a beamline monochromator as well as the motors used by an area detector for crystallography.
mx_etc-2016_03_14.tar.gz (12 kbytes) This file should be unpacked in the etc directory of an MX installation directory.
mx_state-2016_03_14.tar.gz (1 kbyte) This is an example of the backup files produced by the mxautosave program. It should be unpacked in the state directory of an MX installation directory.

Older Applications

Note: These applications may require some modification to work with current versions of MX.

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


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 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 on March 14, 2016.