Setting Zero Crossings (sZC/vZC) and Auto Optimization

Fig. 1: The AC coupled photodetector output of QTFM G2 shows a typical free induction decay signal. The rubidium precession frequency is measured from the time between zero crossings.

The raw, unprocessed output from QTFM G2 is a decaying sine wave (Figure 1) whose frequency is directly proportional to the magnetic field (link).  QTFM Gen-2 utilizes an internal frequency counter to measure the sinewave frequency and infer the magnetic field. This page gives you an overview of how to set the number of zero crossings (ZC) that the frequency counter counts based on the needs of your application.

Why mess with this setting?
In an ideal case, more zero crossings = higher sensitivity. However, because the sine wave decays exponentially with time, counting too many ZC can have the opposite effect and degrade sensitivity. Also, the amplitude and rate at which the sine wave decays depends on the magnetometer’s orientation and gradient field. Therefore, attempting to count too many ZC can also increase the dead zone or make the magnetometer more susceptible to gradient fields.

There are three pre-programmed choices for the ZC number.

  1. Noisy Environment (ZC = 50)
  2. Average Environment (ZC = 100)
  3. Quite Environment (ZC = 200)

In the “Noisy” setting, the fewest zero crossings are counted. Therefore this mode has the smallest dead zone and the highest tolerance to gradient fields, but the sensitivity may be somewhat degraded. On the opposite end of the spectrum is “Quite” in which the most zero crossings are counted. This mode will likely make the magnetometer more sensitive, but potentially with a larger dead zone and reduced tolerance to gradient fields.  The “Average” mode, is a compromise between “Noisy” and “Quite”.

In addition to the three pre-programmed choices, there is another mode called “Auto”. In the auto mode, QTFM automatically finds the ideal ZC number that maximizes sensitivity. The auto mode is best suited for static applications. Note: In auto mode, it takes a few seconds to find optimal ZC. During this time, the magnetometer is unresponsive. The hunt for optimal ZC is automatically triggered if bad data points are encountered (for example due to the magnetometer entering a dead zone) and therefore this mode is not recommended for mobile applications.

The zero crossings number for the scalar mode is called sZC and the zero crossings number for the vector mode is called vZC.

Consider changing sZC or vZC settings when

  • Too many bad data points ⇒ use fewer ZCs
  • Need higher sensitivity ⇒ increase ZCs

Note: After setting ZC, check to see if the magnetometer can be subjected to a full range of motion expected in your application without encountering bad data points. If bad data points are encountered, try lowering ZC.

Setting the ZC number

The settings for the optimal number of ZCs in scalar mode (sZC) and vector mode (vZC) can be different. This is because the vector coils can add a gradient field that generally makes ideal vZC smaller than sZC.

The sZC and vZC can be changed with QTFM Gen-2 user interface using the “Cycle Environment Setting” button under the terminal tab.  The environment setting selection is stored in flash memory and the selection is retained even after a reboot or power cycle.

Alternatively, the environment setting can be changed by sending an ASCII command with a terminal program.

Decimal Ascii Command Description
106 j Environment Setting Vector Cycle through environment settings for vector mode (change VZC)
107 k Environment Setting Scalar Cycle through environment settings for scalar mode (change SZC)

Setting Custom ZC values
The procedure to set custom values for sZC and vZC is the following.

  • In the QTFM G2 user interface, open the “Terminal Tab”.
  • To set sZC, type “2” in the “MEM ADD” block, and the desired sZC value in the “MEM VALUE” block, and press the “MEM Write INT” button.
  • To set vZC, type “305” in the “MEM ADD” block, and the desired vZC value in the “MEM VALUE” block, and press the “MEM Write INT” button.

To permanently retain the set values after a power cycle or reboot, type “105” in the block corresponding to”Send Decimal” button and then press the “Send Decimal” button. Note: If you wish to exit the custom ZC selection mode and choose preprogrammed ZC options, press the “Cycle Environment Setting” button for scalar and vector (Decimal: 106/107).