Installing Stradx on Intel Linux PCs

Downloading Stradx

You can download a binary executables of Stradx, StackSX and SelectSX now. These are Intel binaries for PCs running the Linux operating system. We have tested the Linux version of Stradx on PCs running Redhat 6.0 and above, though we can see no reason why Stradx should not be compatible with other current flavours of Linux.

You can review previously recorded 3D ultrasound data sets on any PC. If you wish to acquire ultrasound data as well, you will need a conventional 2D ultrasound machine and a video acquisition card that:

Alternatively, if you have access to the analogue RF ultrasound signals from an ultrasound machine, you can acquire freehand 3D RF ultrasound using a Gage digital input board.

If you wish to make quantitative measurements from the 3D ultrasound data, you will also need a supported position sensor.

Download Stradx, StackSX and SelectSX now.

Note that the binary will time-out every 6 months or so. When this happens, simply return to this website to download the latest release of Stradx. If you are interested in buying a license to use the source code of Stradx, please email Richard Prager.

Configuring your PC for Stradx

First of all, make sure you have enough memory in your machine. 64 MBytes is an absolute minimum memory requirement; we use 256 MBytes. If you wish to use Stradx's body registration facilities, make sure the file wireframe.data is installed in the same directory as the Stradx executable: you will also need to specify the full path of the Stradx executable when you run Stradx (ie. do not rely on symbolic links or your shell's search path), otherwise Stradx will not be able to find the wireframe.data file.

Stradx uses Motif for its user interface and OpenGL for its graphics, and therefore expects to be able to dynamically link against the relevant libraries, namely libXm.so.2 for Motif, and libGL.so.1 and libGLU.so.1 for OpenGL. If you do not have these libraries installed on your system, we recommend downloading Lesstif for libXm.so.2, and Mesa version 5.0.1 for libGL.so.1 and libGLU.so.1. Note that early releases of Mesa were not optimised for drawing standard images (ie. images with the origin in the top left hand corner). Unfortunately, Stradx draws many such images and consequently runs very slowly when linked against very old versions of Mesa. We strongly recommend you use a version of libGL.so.1 derived from Mesa version 3.4 or later: for example, the libGL.so.1 that comes with XFree86 version 4.3 is fine.

You may wish to set up a .stradxrc file in your home directory.

Setting up your PC for data acquisition

In order to record freehand 3D ultrasound data, you first need to connect the ultrasound machine to one of the video inputs on the PC's video acquisition card. You may also need a position sensor to record the position of the ultrasound probe during the scan. You can use Stradx without a position sensor, but the data will not be accurate enough for quantitative measurements. Stradx supports the MiniBird, LaserBird and Flock of Birds position sensors produced by Ascension Technology Corporation, the Fastrak produced by Polhemus and the Polaris produced by Northern Digital. You should connect one of these sensors to one of the serial ports of the PC or, if your computer does not have old-style serial ports, to a USB port via a USB-serial converter. Make sure that all users have permission to read and write to the appropriate serial device (/dev/ttyS0 or /dev/ttyS1 for old-style serial ports, /dev/usb/ttyUSB0 or /dev/usb/ttyUSB1 for USB-serial converters). Remember which serial port you have chosen, as you will need this information to configure Stradx.

The Polaris optical sensor is the most accurate but also the most expensive. Both magnetic sensors appear to give similar accuracy but the Bird seems less affected by non-ferrous metals in the vicinity. Many users of the Bird mount the receiver directly on the body of the ultrasound probe. Users of the Fastrak generally use a rigid plastic mount to offset the receiver by about 4 inches from the probe.

Make sure you have correctly installed the appropriate `Video for Linux 2' driver for your video acquisition card. The `Video for Linux 2' standard has recently been modified. We provide different versions of Stradx for the new and old API. If you have an existing system with the old API, run stradx_old_v4l2. The new API comes with kernel 2.6, or you can patch it into an earlier kernel by following the instructions here . For the new API, run stradx_new_v4l2. Note that you'll need to use the new API if your video card has a recent chipset, like the Philips saa7134. If you see the message QUERYCAP ioctl in construct_v4l2_buffer failed: Invalid argument, you're either running the wrong version of Stradx for your `Video for Linux 2' installation, or you're running `Video for Linux' instead of `Video for Linux 2'. Also, check that the appropriate kernel modules are loaded (or add appropriate entries to /etc/modules.conf or /etc/conf.modules to make the modules load automatically). Specific instructions for installing `Video for Linux 2' on vanilla Redhat 9 Linux systems are available here.

Command line arguments

The Linux version of Stradx takes the usual X-toolkit command line arguments plus three extra ones.

-g<number>
indicates the number of megabytes of memory that Stradx should allocate for its main recording buffer. If this number is too small, then you will not be able to store large data sets in memory. If it is too big, then the data will not fit in main memory and Stradx will run very slowly as it continually swaps to disk. Typically, you should set this flag to a little over half of the physical memory you have installed in your PC. The default value is 150 MBytes.

-l<number>
indicates the number of megabytes of memory that Stradx should leave free in addition to that being used by its recording buffer, the system and all the other processes at the time when it starts up. If this number is too small, then there will not be enough room for Stradx (and other processes) to allocate memory as they run. If this number is too big, then Stradx may complain that it cannot find enough memory for its recording buffer. The default value is 20 MBytes.

-b
tells Stradx to create big clear, pause and record buttons for use with a touch screen. If you use a touch screen that uses a serial port, make sure that Stradx is not trying to use the same port to receive position information.