The fluxgate magnetometer is a device that serves for the vectorial measurement of low intensity magnetic fields. This device is relatively simple but allows to reach resolutions of the order of the nanotesla. It is widely used when high resolution is required but at the same time reliability, robustness and low cost : it is the primary choice when it comes to measuring and monitoring the geomagnetic field.
The sensor consists of a core of ferromagnetic material, for example soft iron, on which the primary solenoid is wound, a modulated excitation current saturates the ferromagnetic core, on the secondary solenoid a signal is produced due to the electromagnetic coupling between the two solenoids. This signal depends strongly, thanks to the non-linear behavior of the nucleus, on the intensity of the external magnetic field that crosses the nucleus.
The image below shows the diagram of the fluxgate magnetometer :
The sensor we used is the FG-3+ model produced by fgsensors. The image below shows the device. It is a fairly good product with a low cost. It requires a stabilized 5V power supply and provides an output TTL signal whose frequency is inversely proportional to the intensity of the axial magnetic induction field.
The sensor data are summarized in the following table :
|Maximum Supply Voltage
|Recommended supply Voltage
|5 V ±0.5 V
|Typical Supply Current
|0 ÷ 50 °C
|Output Period Range
|8.5 ÷ 25 μs
|Output Frequency Range
|120 ÷ 50 KHz
|Magnetic Field Range
|-50 ÷ +50 μT
|62mm x 16mm
The relation between period / frequency of the output signal and the intensity of the magnetic induction field is fairly linear for low field values, but it differs from linearity when it reaches the extremes of the measurement range (∼ 50 μT). For this reason, before use, it is necessary to carry out a preliminary calibration of the sensor.
The first tests on the sensor were made by connecting it to a low-ripple 5V voltage regulator in order to have an optimal power supply, and displaying the signal generated by the sensor with an oscilloscope. The images below show the connections and screens of the oscilloscope in which two different frequency signals are shown. By varying the orientation of the sensor, and therefore the earth’s magnetic field to which the sensor is subjected, a variable frequency signal can be obtained within the established range of 50 – 120 KHz.
This is a first functional test.
Signal reading with Cypress PSoC 5lp
The signal that is generated by the FGM sensor is a “TTL” pulse train, therefore 0 – 5V, whose frequency, included in the range 50 – 120 KHz, is inversely proportional to the intensity of the field. To measure the field with an FGM sensor it is therefore necessary to measure the frequency of this signal.
For this type of application the PSoC microcontroller is perfect. We used the PSoC 5LP model in the CY8CKIT-050 development kit version, shown in the image below, where you can also see, on the display, the measurement result expressed in CPS units (counts per second) which corresponds to the Hz value.
The core of the firmware is the “Counter” component that carries out the counts of the pulses generated by the FGM sensor and sent to a digital input of the PSoC. The duration of the count is 1 second, in this way the value obtained directly represents the value, expressed in Hz, of the signal frequency. The image below shows the detail of the PSoC scheme with the Counter component that counts the pulses.
As previously mentioned, the FGM sensor must be calibrated, so as to establish with reasonable accuracy the link between the frequency / period of the signal that is generated and the intensity of the component of the magnetic induction field having direction parallel to the sensor axis.
The sensor calibration is performed by a solenoid which produces a known magnetic field : the sensor is inserted inside the solenoid, which produces a constant magnetic field of axial direction and of known intensity. The solenoid is oriented in an east-west direction so as to minimize the contribution of the earth’s magnetic field. The solenoid is then wrapped and enclosed with a mu-metal sheet which further reduces the influence of external magnetic fields.
The images below show the solenoid, the sensor and the mu-metal sheet. The east-west orientation is controlled by the magnetic compass of a smartphone.
The solenoid has a length of 11 cm with an internal diameter of 2 cm, the magnetic field inside is affected by the curvature at the openings, this is taken into account with a geometrical factor of 0,9806.
So the field is :
B = μ * N/L * I * 0,9806
μ = μ0 = 1,26×10-6 H/m
N/L = 2598,4 sp/m
I = solenoid current
The sensor’s measurement range is from about -0.5 to +0.5 oersted which correspond to -50 ÷ +50 μT (-50000 ÷ +50000 nT). To obtain this magnetic field we need to vary the current in the solenoid from -16 to +16 mA. This is easily achieved by connecting the solenoid to a battery and adjusting the current, measured with the multimeter, by means of a multiturn potentiometer connected in series.
The images below show the setup used for acquiring the data needed to calibrate the sensor.
By continuously changing the current in the solenoid and gathering the data on the signal produced by the sensor, we are able to draw the graph that relates the period of the signal to the intensity of the axial magnetic field. The graph below shows this relationship for our FGM sensor.
From the graph we see how the magnetic field / period relationship is not linear, although it can be considered linear, with good approximation, on small intensity ranges, in particular from -20 μT to + 20 μT. The following chart shows this limited range.
At the PSoC microcontroller level, no conversions are made for the calculation of the magnetic field, only the value of the signal frequency has been chosen to be maintained and displayed.
The system is however prepared to send this numeric data to a data logging system (for example a RaspberryPI) in which the conversion algorithm can be implemented, according to the two equations presented in the two graphs : a fourth degree polynomial fitting in the first case, a simple regression line in the second, as described in the python code extracts shown below :
If you liked this post you can share it on the “social” Facebook, Twitter or LinkedIn with the buttons below. This way you can help us! Thank you !
If you like this site and if you want to contribute to the development of the activities you can make a donation, thank you !