Hardware configuration - josalggui/MaRGE GitHub Wiki
Hardware Configuration Notes
Here are some notes on the hardware parameters included in the hw_config.py
file.
gFactor Setting
The gFactor
is a list of three float numbers that allows MaRGE to convert from T/m to the Ocra1/FHDO required amplitude.
These factors depend on the gradient board used, the gradient power amplifier, and the gradient coils.
Calibration is required before running gradients for the first time.
Here is a step-by-step configuration method, although other methods can also be used.
- Introduce a well-known phantom into your scanner. I use a cylinder with a 10 cm diameter and 10 cm length filled with water and copper sulfate.
- Set the
gFactor
to[1.0, 1.0, 1.0]
. This indicates that 1 mT/m will be translated to an amplitude of 1 for Ocra1/FHDO. - Find the Larmor frequency by running the
Larmor
sequence. - Find the coil efficiency by running the
RabiFlops
sequence. - Select the
RARE
sequence and configure it to get a projection image with 40x40 pixels. - Select a large field of view (fov), one order of magnitude larger than your scanner fov, and run the sequence. Your image should be much smaller than your selected fov.
- Reduce the fov iteratively until your phantom fully fits into your image.
- The gFactor can be calculated as: $gFactor = fov/size$
- Once you have the gFactor for the two axes of the image, repeat the process for the remaining axis.
An alternative method for determining the gFactor involves using prior knowledge of the coil and GPA characteristics. If you know the gradient coil efficiency (T/m/A), the gradient transconductance (A/V), and the board output voltage gain (V/unit), you can calculate the gFactor as follows:
gFactor=efficiency×transconductance×gain
For example, a gradient coil with an efficiency of 0.25 mT/m/A, using an AE Techrom GPA with a transconductance of 5 A/V and an Ocra1 board (10 V/unit), would have a gFactor of:
gFactor = 0.00025 T/m/A × 5 A/V × 10 V/unit = 0.0125 T/m/unit
adcFactor Setting
The adcFactor
parameter allows the user to measure the signal from the Red Pitaya in mV.
This is particularly useful for noise measurements.
While a default value is provided in the hw_config.py
file, this parameter is frequency-dependent and requires proper calibration at the working frequency.
Here is how to correctly set up this parameter:
- Connect the Tx1 to the Rx1 channel using a coaxial cable.
- Set the
adcFactor
to 1. - Run MaRGE and select the
FID
sequence. - Set the working frequency to your desired frequency.
- Set the excitation amplitude to 1 (225 mV amplitude).
- Set the excitation time to 1 ms.
- Set the dead time to -1 ms.
- Set the acquisition time to 4 ms.
- Run the sequence.
After running the sequence, you should see a signal where the amplitude is equivalent to 225 mV.
The adcFactor
can then be determined using the following formula:
$$ \text{adcFactor} = \frac{225}{Y_{\text{out}}} $$ where $Y_{\text{out}}$ is the observed amplitude.
Note: Not sure if the output of the Red Pitaya is frequency dependent. Te user may want to double-check the amplitude by measuring the output signal in a 50 Ohms load with an oscilloscope.
gradDelay setting
The gradDelay
parameter accounts for the delay between the input voltage and the output current waveforms at the GPA.
This value ensures that the gradient waveforms are synchronized according to the sequence requirements.
To characterize this delay:
- Obtain an oscilloscope.
- Connect channel one to the GPA's voltage input.
- Connect channel two to the GPA sensor channel, if available. If the GPA lacks a current sensor channel, use a current clamp connected to the oscilloscope.
- Send a trapezoidal waveform to the GPA using either MaRGE or a waveform generator.
- Measure the delay between the voltage and current waveforms.
blkTime setting
The blkTime
parameter represents the de-blanking time necessary to operate the Radio-Frequency Power Amplifier (RFPA).
In MRI scanners, the RFPA needs to be turned on during excitation and off during reception to prevent noise coupling
between the RFPA and the LNA when receiving signals.
This value is usually specified by the RFPA manufacturer, so you should refer to the RFPA datasheet to find it.
antenna_dict
The antenna_dict
parameter is a dictionary that lists the available antennas along with their corresponding efficiencies.
To determine antenna efficiency:
- Select the RabiFlops sequence, which can be run using MaRGE or executed directly as a standalone sequence.
- Ensure that the
larmorFreq
value inhw_config.py
is correct. You can either manually enter the correct value inhw_config.py
when in standalone mode, or determine it by running theLarmor
sequence in MaRGE (a rough pre-calibration is needed for the latter method). - Choose an amplitude for your pulses between 0 and 1.
- Set the start and end values for the RF pulse time, as well as the number of pulse times to be used in the sweep.
- Set the refocusing method to 1 and the refocusing pulse time to 0.0.
- Choose ECHO as the calibration method.
- Apply the best possible shimming, as incorrect shimming could negatively affect the efficiency results.
- Run the sequence; the efficiency will be displayed in the console.
- Check for the time required to get the first minimum (pi flip angle)
Once the efficiency is determined, add it to the antenna_dict
by using the formula:
$$ \varepsilon = \frac{\pi}{\text{Amplitude} \times t_{\pi}} $$
where $\varepsilon$ is the efficiency, $\text{Amplitude}$ is the used amplitude in a scale from 0 to 1, and $t_{\pi}$ is the time to get a flip angle of $\pi$
More details:
lnaGain Setting
The lnaGain
parameter is used by the Noise
sequence to estimate the expected Johnson noise limit of your setup.
This allows you to compare the calculated RMS noise value from the measured data with a well known reference.
lnaGain
represents the gain in the reception chain, measured in dB.
This value should be available in the LNA datasheet (if using a single LNA) or can be measured using a network analyzer
or an oscilloscope in conjunction with a signal generator if multiple stages are used.