Transducer Prototyping

Integrating custom designed transducers with the Sonix platforms is a straight forward and easy process. In this article we explain the basic steps for integrating a new transducer to the system.

Introduction
For this article, we have assumed that a new transducer has been designed and developed which is compatible with the Sonix systems. In particular, the transducer elements are wired properly to the pins on the connector. Ultrasonix probe pin-out can be found online at the research forum http://research.ultrasonix.com in the Transducer section.

For the integration process, described in this article, only six pins are of interest: A1 to A5. These pins define the 6-bit transducer code encoded by C0 to C5, as shown in the following diagram:



Assigning a Code to the Transducer
The A1 to A6 pins on each of the probe connectors on a Sonix system are 6 digital inputs, which have pull-up resistors on them. This means that if the pins are left unconnected, the values for all six pins would be read as logic high.

The A6 pin is not actually used. By grounding the A1 to A5 pins, inside the probe, it is therefore possible to assign a 5-bit code to the probe. Therefore a maximum of 32 transducer codes can be supported at each time by the Sonix system.

The pins are usually tied to ground inside the transducer connector, GND = 0 (pin tied to ground) and NC = 1 (leave open), to form the binary format of the code.

An example to create a transducer with code=3.

Defining a Transducer
The file probes.xml is used to define a transducer, this file can be edited to add new models.

 2      0.000000          L5-10/40EP 00.035.081          00.035.067           00.035.051           00.035.017          L5-10/40EP(GPS) 00.035.064      L14-5_38-and-L9-4_38.png 41000        6000         50000         3430         9500000         9000000       100000       17500       40000 60        0 0 0 0        0         0 128 0</pinOffset> 300      0         1         <tempAngleSensor>0</tempAngleSensor> 0      <muxWrap> <Rx>0</Rx> <Tx>0</Tx> </muxWrap> <elevationLength>0.7</elevationLength> <maxPwPrp>800</maxPwPrp> <invertedElements>0</invertedElements>

The above example shows the information that should be set for a transducer definition. Looking deeper into file, one can find examples for defining biopsy guide information, stepper motor control, and many other transducer properties. The following table contains a description of the probe parameters and their units.

Transducer ID

Ideally a new ID should be created to avoid confusion within the software; in the probes.xml file, the attribute id can be modified.

Presets

To get started with imaging, a preset will need to be created and associated with the new transducer. The simplest way to do this is to copy a master preset from another transducer that has similar parameters and properties. For instance, a new 10MHz linear array should copy from the L14-5/38 master preset, the associated file within the software is GEN-General (L14-5 38mm).xml. Once copied, the file should be renamed to something different like GEN-General (My Probe).xml.

Editing the master preset file is relatively easy, the important information is to change the attributes of the preset node, where the probe attribute is the ID of the new transducer.

<preset app="6" factory="1" master="1" probe="2" version="2">

Imaging parameter values can be adjusted directly in the XML file, or the transducer can be loaded with the research software with the default copied preset, and using the research menus, the parameters can be adjusted until imaging is optimized, whereupon the preset can be saved and overwritten. It may be best to contact an Ultrasonix support member to help with this step.