Close

Progress with new coil designs

A project log for PyPPM: A Proton Precession Magnetometer for all!

A device for conducting Nuclear Magnetic Resonance experiments at Earth's field

bradley-worleyBradley Worley 06/10/2014 at 16:300 Comments

It works, but it's not finished!

One design goal of PyPPM is to host the device on the internet, making it possible for anyone to visit a web page and click to collect a Free Induction Decay of their own. In order for that to become a possibility, a few improvements have to be made to the design:


Magnetic field calculations: Designing the new coils for PyPPM required an understanding of the magnetic fields they produce. I wrote a small C program that uses the Biot-Savart equation to compute magnetic fields generated by any geometry of (infinitely narrow) wire.

The software is licensed under the GNU GPL and is freely available here: GPUfield at Geekysuavo.org.


Interference cancellation: Even out in a sub-urban plot of land, the revision 1.0 sensor coil picks up significant interference. In a building, with wires running through the walls and computers kicking out EMI, it's even worse. The worst offenders are high-order harmonics of the 60 Hz mains frequency that fall within the pass-band of the PyPPM analog signal chain.

For example, after a single scan (15 seconds of experiment time) in the outdoors, I can get a spectrum that looks like this:

I can also collect a signal of background interference. By finding a scale factor that minimizes the sum of squares of the differences between the two spectra, I can subtract out any stationary interferences and get a spectrum of pure NMR signal:

While this works great in the frequency domain, there's no easy way to get back to the filtered time-domain signal using this method. So, you wouldn't be able to hear your NMR signal through the computer speakers. :(

A better way to remove interference is at the source, using a hum-bucking coil arrangement. The new design will feature two counter-wound coils, aligned to the same vector, and spaced a few centimeters apart. The sample will only be placed in one coil, which causes the differential voltage between the coils to be just the NMR signal.

Field calculations of the new coils are underway to get an estimate of inductance and coupling versus various arrangements. A slice through one of the new coils shows improved field strength over the previous design:

A few final details... Per coil gauge: 18 AWG, inner diameter: 5 cm, length: 5 cm, turns per layer: 50, layers: 15. Estimated single-coil inductance: 14.5 mH, resistance: 3.5 Ohms.

I should be able to start building these coils soon.


Inhomogeneity correction: Running experiments indoors inherently means dealing with inhomogeneous ambient magnetic fields. Structural iron, or even the right kind of furniture, can distort the Earth's magnetic field lines enough to blur an NMR signal.

An example is apparent in the first signal captured by the PyPPM (see the previous log). The signal at 1775 Hz corresponds to a 41 microTesla (uT) field, and the 60 Hz signal width indicates a mere 1.4 uT field inhomogeneity inside the 10 cm x 5 cm solenoid.

To make the field around the new coils more homogeneous, I plan to build a set of coils called a "shim stack". At the very least, I will design a Z-shim that removes any linear field gradient along the Z-axis:

In later versions of the PyPPM, I'd also like to include X- and Y-shims:

The Z-shim is substantially easier to build, as it's just two counter-wound solenoids. In fact, it's a Maxwell coil, with the center solenoid removed, and one of the solenoids reversed.

The X- and Y-shims are a bit trickier. They are based on Golay coils, and will need a bit more thought on implementation.


Right now, I'm waiting on magnet wire from eBay. Stay tuned!

Discussions