FGM-3h Geomagnetic Fluxgate Magnetometer
Archive: The magnetometer is offline and we are no longer collecting data.
In summer 2013 I purchased a fluxgate magnetometer from Speake & Co to monitor the Earth's geomagnetic field. The FGM-3h sensor is sensitive enough to measure the approximately 100 nT daily variation in the field.
The sensor was buried about 60 cm deep in my back garden near Southampton, UK, to isolate it from daily temperature variations. A long shielded cable connected it to an Arduino Mega 2560 inside the house and a circuit of my own design.
How it worked
- A 5 V precision reference powered the FGM-3h, reducing changes in supply voltage caused by temperature. A 9 V regulator fed the reference and the Arduino.
- The Arduino counted pulses from the sensor over five seconds. A GPS pulse-per-second signal timed the sample period more accurately and with less jitter than the Arduino crystal.
- Clock interrupts were used to count the pulses, and a watchdog timer could restart the Arduino if it got stuck.
- An Ethernet interface sent readings to a database on the website. Readings were taken about three times per minute and the website calculated the variation in nanotesla.
- A DHT-22 sensor was buried with the magnetometer to measure underground temperature and humidity.
Source code example
Here is a sample Arduino sketch for reading the FGM-3h. It counts pulses and sends the result to the serial port. The observatory used a more complex program with an internet connection and GPS timing.
Limitations
- Data was not stored locally, so an internet outage caused a jump in the record.
- The sensor was not completely isolated from nearby effects: a car parking on the drive could cause a step or jump in the reading.
- The sensor was only roughly calibrated; the zero point on the chart was arbitrary.