Close

Does this project spark your interest?

Become a member to follow this project and don't miss any updates

PyPPM: A Proton Precession Magnetometer for all!

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

Similar projects worth following

This project was created on 06/06/2014 and last updated 3 months ago.

Description
When was the last time you observed something purely quantum mechanical, without any classical analog? Well partner, that's too long!

The PyPPM is a single-board Proton Precession Magnetometer, which is a device for conducting Nuclear Magnetic Resonance (NMR) experiments (think MRI) using the Earth's magnetic field, without the need for expensive superconducting magnets.

The short story: the nucleus of every hydrogen atom behaves like a microscopic bar magnet. This device manipulates those tiny bar magnets by coaxing them into alignment, then letting them loose to relax back to their rest state. As the nuclei relax, this device reads back the magnetic field they produce as an AC signal called a Free Induction Decay.

This device is the first open-source PPM that doesn't require extra hardware or messy board-to-board connections. It connects directly to a Linux PC or Mac via USB and is controllable using a simple Python API.
Details

A quick and dirty introduction to the PyPPM

Here are a couple short summaries of the "what" and "why" behind my PyPPM project.

Still interested? Awesome! Read on, friend...

How an Earth's Field NMR (EFNMR) experiment works

The first-revision PyPPM operates using the Varian-Packard method, named after the two inventors. (For information on the second-revision operating scheme, keep reading further down in the details)

Using the Varian-Packard method, an EFNMR experiment can be boiled down into three stages: polarization, quenching, and acquisition...

  • Polarization: During this first stage, the sensor coil is connected (via a relay) to a constant current sink that maintains a current of roughly 2 Amps. The sample in the sensor coil develops a magnetic polarization that increases exponentially in time, with a time constant of a few seconds (T1). This stage usually lasts about five to ten seconds, depending on the amount of polarization required to achieve the desired signal amplitude.
  • Quenching: This is the most critical step for a Varian-Packard design. The current sink is switched off, and the energy stored in the coil (and thus it's magnetic field) must be rapidly quenched. If the field is not quenched rapidly enough, the sample will not keep it's magnetic polarization, and there will be no signal. (More on this later)
  • Acquisition: If everything went as planned up to this point, the sensor coil is connected (via the same relay) to an analog signal chain that provides 110 dB of amplification over a 3 kHz bandwidth centered around 2 kHz. The amplified signal is digitized and sent via USB to the host computer for further processing.

The entire scheme is shown graphically below.

And a few final notes...

Polarization dead-times: The astute reader will notice that there is a short dead-time between relay switching and turn-on/turn-off of the current sink. This allows the fragile relay contacts to move between positions without having to worry about arcing due to unquenched inductor current.

Acquisition dead-time: A second dead-time is placed after the polarization stage of the experiment to give the relay contacts even more time to stop chattering before the low-voltage signal is acquired through the analog signal chain.

Recycle delay: This is a feature to satisfy the chemist in me. If multiple scans (polarize, quench, acquire) are performed in order to increase the signal-to-noise ratio of the final signal, the device is should wait a bit between scans, both to let the coil cool and to allow the sample to return to its equilibrium state.


PyPPM Hardware system-level overview (a.k.a. first revision System Design Doc)

Sensor coil: The sensor coil is arguably the most critical component of an EFNMR system. It's inductance and resistance determine how fast it can be switched on and off, how much current it can carry, and how sensitively it can detect the weak oscillating magnetic field produced by the sample.

The current sensor coil design (rev 1.0) in the PyPPM is a 10.2 cm long solenoid wound around a 5.0 cm diameter PVC pipe. The solenoid has four layers of 158 turns each, totaling to 632 turns of AWG 22 enameled copper wire. The solenoid has an approximate inductance of 7.5 mH and a resistance of 5.5 Ohms.

Future versions of the sensor coil will focus on providing a level of humbucking to minimize the amount of electrical interference that is received during acquisition. The current coil easily detects the 30th harmonic of 60 Hz mains wiring from hundreds of feet!

Sensor relay: The relay switches the sensor coil between the polarization circuit and the acquisition circuit. A small-signal DPDT relay (Omron G6A) was chosen to ensure galvanic isolation between the low-noise analog signal chain and the noisy polarization circuitry.

Polarization battery: The current design of the PyPPM admits any DC voltage source under 15 V, battery or otherwise. However, this voltage source must be able to maintain several Amps of current for several seconds....

Read more »

Components
  • 1 × ATMEGA32U2-AU-ND Microcontroller AVR 8-bit, 32k Flash, USB 2.0
  • 1 × AD8428ARZ-ND Instrumentation amplifier, 66 dB, 3.5 MHz
  • 1 × AD8597ARZ-ND Low-noise operational amplifier, 10 MHz
  • 1 × OP462GSZ-ND Quad operational amplifier, 15 MHz
  • 1 × ADA4841-1YRJZ-R7CT-ND Rail-to-rail operational amplifier, 80 MHz
  • 1 × AD7680ARJZ-REEL7CT-ND Analog-to-digital converter, 16-bit SAR, 100 kS/s
  • 1 × FAN3111ESXCT-ND MOSFET gate driver, 1 A
  • 1 × IRLR024NPBFCT-ND MOSFET N-channel, 55 V, 17 A
  • 1 × SMDJ45ACT-ND Diode TVS 45 V / 72.7 V
  • 1 × LT3439EFE#PBF-ND Low-noise, push-pull switching regulator

See all components

Project logs
  • PyPPM 2.2 is born

    3 months ago • 0 comments

    There's a crick in my neck from staring at these monitors too long yesterday, but it's the necessary pain from re-working the entire PyPPM 2.1 design into a new set of schematics and board files: PyPPM 2.2!

    There are a few big changes and a smattering of subtle changes in the new design:

    • Corrected -2.5V regulator pinout: I had screwed up the pinout on the adjustable version of the LT1964 low-noise regulator, and had to bodge in a fix on the PyPPM 2.1 board. This is fixed properly in the new design.
    • Changed dual SD101A's to BAV199: The input protection diodes in the instrumentation amplifier section have been changed to lower-leakage, lower-Vf SOT23 parts to improve signal chain performance.
    • Fixed part numbering scheme: This was driving me crazy, as I'd been continually adding and removing parts and renumbering in random ways. The parts now follow a logical ordering based on their appearance in the schematic.
    • Added +/- 5V rail supervisor: Now, the only way that the high-current +/- 5V regulators should start up is when (a) there is USB power and (b) there is at least +/- 7V applied to the regulator inputs. I was getting annoyed by the LT1763A "starting up" from leakage alone without an input voltage.

    All the changes add up to a more robust hardware platform that's easier to build and maintain.

    Oh! I also finally soldered everything onto the PyPPM 2.1 board:

    Isn't she pretty? :)

  • Capacitive tuning is working!

    3 months ago • 3 comments

    After bodging in the correct connections to bring the -2.5V rail up (or down?) on the PyPPM 2.1 board, I finally got digitally selectable capacitive tuning working in the firmware and software.

    The idea behind tuning is to place a capacitance in parallel with the sensor coil such that the resultant LC tank circuit resonates at a desired experimental frequency. Most devices have used manually adjusted capacitor banks or variable caps, but the PyPPM uses a digital control scheme that provides 64k unique capacitance values.

    Check it out:

    If everything goes well, I'll be able to run a field test soon of the non-adiabatic pulse program with and without tuning to show the performance in a real-world setting.

    ~ Brad.

  • The first data from PyPPM 2.1!

    3 months ago • 1 comment

    I've been ironing out the wrinkles in the new PyPPM firmware, and I finally have the assembly-based acquisition and delay routines working.

    One nice thing about assembly is how fast I can read data from the ADC now: 100 kS/s and PyPPM2 doesn't even break a sweat! Check it out:

    And now the frequency domain shot...

    This is with a 50 Ohm terminator on the input BNC connector. I couldn't be bothered to get the real frequency-domain units. Maybe another time. :)

    Until next time!

    ~ Brad.

View all 25 project logs

Build instructions
  • 1

    Download the latest PyPPM sources zip file from the PyPPM GitHub repository.

  • 2

    Unpack the sources file (i.e.: unzip pyppm-master.zip; cd pyppm-master/)

  • 3

    Locate the latest PPM circuit board design files in 'designs/' (currently version 1.3, as 'designs/ppm-1.3/ppm-v1.zip').

See all instructions

Discussions

peter jansen wrote 15 days ago null point

I have recently discovered that hand-winding these coils is non-trivial. :)

Are you sure? [yes] / [no]

Bradley Worley wrote 15 days ago null point

For sure! :) Having a sturdy PVC coil form with raised end caps and some double-sided tape helps a whole lot!

Are you sure? [yes] / [no]

Luke Weston wrote 3 months ago null point

For extra credit, try reproducing this:
http://www.nature.com/nature/journal/v414/n6866/full/414883a.html

(I'm mostly kidding... you would need a probe capable of both 13C and 19F coverage, and custom isotope-selective synthesis of the reagent they use, among other things. But still, DIY bonafide quantum computer running Shor's algorithm will get you +90000 internet credit.)

Are you sure? [yes] / [no]

Bradley Worley wrote 3 months ago null point

Ha! Only in my dreams...

But now that you say it, I wonder if I could generate selective pulses for 19F vs 1H at Earth's field. It might require '450-degree' pulses (instead of 90-degree) to narrow the sin(x)/x window enough... Hmm...

Are you sure? [yes] / [no]

Luke Weston wrote 3 months ago null point

For an easily available and non-toxic, non-corrosive reference reagent that will give you a 19F signal as well as 1H I would consider using a hydrofluorocarbon refrigerant such as R134a (1,1,1,2-tetrafluoroethane). You should be able to get small cans relatively easily for refrigeration work, or "freeze spray" which is commonly R134a. Obviously it boils at ambient temperature and pressure, but you could keep it in a sealed gastight tube.

Are you sure? [yes] / [no]

Marvin wrote 3 months ago null point

That sounds like a good plan. Fluorinert may be another option, it's a liquid at room temperature and non-toxic but it's fairly expensive and it will probably have a much more complicated J coupling spectrum. I'm wondering about a concentrated solution of ammonium bifluoride in water, it would be corrosive and toxic but sealed inside a plastic bottle it could be a lot easier to handle.

Are you sure? [yes] / [no]

Luke Weston wrote 3 months ago null point

Or perhaps a piece of Teflon? That would give a very simple, single peak signal that might be useful if your goal is to simply show that a 19F signal is possible. And it's solid, chemically stable, and quite a "dense" fluorine source.

Are you sure? [yes] / [no]

Bradley Worley wrote 3 months ago null point

It's a good idea, but Teflon would only give me a Fluorine signal, and since it's solid, I think I'd have to contend with a whole extra set of interactions that could potentially broaden the 19F NMR line past detectability in the PyPPM...

Are you sure? [yes] / [no]

Marvin wrote 3 months ago null point

Would magic angle spinning partially negate that? Probably wouldn't have to spin very fast at earth fields.

Are you sure? [yes] / [no]

Bradley Worley wrote 3 months ago null point

I don't see why it wouldn't help. Since the 'spectral width' at Earth's field would be almost nothing, a fairly slow rotation of 100 Hz or so should easily send the spinning side bands well enough away from the true signal.

Are you sure? [yes] / [no]

David wrote 3 months ago null point

Do you have some data taken from samples other than water? Like sugar or ethanol in deuterium?

Do you think it would be possible to build an Earths Field MRI like this machine? http://www.magritek.com/products/terranova/

Great project BTW, I hope you get the boards mass produced and offer it as a kit. As an organic chemist, the idea of having my own NMR machine is fantastic!

Are you sure? [yes] / [no]

Bradley Worley wrote 3 months ago null point

Hi David, glad you're interested! The only sample I've measured so far is water, but I'd like to see if I can see J-couplings from samples like ethanol or highly concentrated citrate...

The Magritek MRI is an amazing unit, and it turns out the PyPPM 2 is headed that direction. With the right shim drivers, you could achieve spatial encoding for MRI. :)

Are you sure? [yes] / [no]

Bradley Worley wrote 3 months ago null point

Also, deuterium (or any nucleus with a gyromagnetic ratio less than 13C) would
fall outside the band pass filter.

Any thoughts on a cheap liquid that could give me both 19F and 1H signals?

Are you sure? [yes] / [no]

Bradley Worley wrote 3 months ago null point

Oh! A super long-term goal of mine is to build an open-source bench top NMR using what I've learned with earth's field units, so keep checking out the PyPPM! ;)

Are you sure? [yes] / [no]

David wrote 3 months ago null point

Yeah, I mentioned deuterium, but I meant heavy water to dissolve your sample in. That way, the sugar signals would be clear of the water's proton peak, as you know.

If you know any organic chemists, they probably have some fluorinated compounds they use as functional-group protectors lying around. I've made triflate and nonaflate compounds, and as I recall, the reagents weren't too expensive. One's called Trifluoromethanesulfonic anhydride ( http://en.wikipedia.org/wiki/Trifluoromethanesulfonic_anhydride ), and its about $30-40 for 5 ml, which should be enough for you. Careful, it's burney!

Are you sure? [yes] / [no]

Marvin wrote 3 months ago null point

I'm wondering even if you don't need current sources for shims (and I'm still not convinced), do you not need one for Tx? Otherwise the applied field at any given time is going to be a function of the applied voltage and the RL characteristics. It would also make use of the headroom between the voltage supply and the highest usable constant current voltage implied by the low turn coils.

Are you sure? [yes] / [no]

Bradley Worley wrote 3 months ago null point

It's a valid point; I'm just trying it out at the moment. You could be absolutely right! :) My guess/hope is that, because the frequencies going through the Tx coil will be low, voltage control could be enough...

Are you sure? [yes] / [no]

Marvin wrote 4 months ago null point

Random question. What are R50 and R51 doing? Tnx.

Are you sure? [yes] / [no]

Bradley Worley wrote 4 months ago null point

Hey Marvin, the feedback resistors are there to keep the CFB op amps U19 and U20 happy, just as an added measure. I can always jumper them with 0R resistors if they become unnecessary.

Are you sure? [yes] / [no]

Jasmine wrote 4 months ago null point

Hello Bradley, please review your project documentation to ensure it has everything we require for it to be considered for the next round of The Hackaday Prize.

By August 20th you must have the following info on your project page:
- A video (I can see yours)
- At least 4 Project Logs (you've got enough)
- A system design document (I think it's the PyPPM Hardware system-level overview)
- Links to code repositories, and remember to mention any licenses or permissions needed for your project. For example, if you are using software libraries you need to document that information in the details.

Good luck!

Are you sure? [yes] / [no]

bijtaj wrote 5 months ago null point

Cool project!! Are you ever going to try to make an MRI from it? Good job!

Are you sure? [yes] / [no]

Bradley Worley wrote 5 months ago null point

Thanks!! :) I've considered trying my hand at an MRI system, but I'd have to make a significant number of improvements to the non-spatially-selective portion of the device first.

Are you sure? [yes] / [no]

fl@C@ wrote 5 months ago null point

Hey Bradley, just wanted to say that your progress looks great! I totally want to build one!
Also, looks like we were both mentioned in an article about the hackaday prize... on IEEE Spectrums website... You were his favorite :) It was a couple weeks ago, but I don't keep that close an eye out.. http://spectrum.ieee.org/tech-talk/geek-life/hands-on/hackaday-prize-competition-gears-up

Keep up the great work!!

Are you sure? [yes] / [no]

Bradley Worley wrote 5 months ago null point

Awesome, thanks for the link! I've been following your spectrometer too; always wanted to build a Raman spectrometer. It was even part of my original research proposal in grad school. :) Same to you, the spectrometers looking good, keep it up!

Are you sure? [yes] / [no]

Marvin wrote 6 months ago null point

Re:Shims. I think you are setting a voltage for both sides of the coil so you can reverse the polarity. With dual rails you would save a DAC and a buffer per shim coil. Rather than voltage being buffered, would it not be better to wire the Op Amp as a voltage controlled current source/sink?

Are you sure? [yes] / [no]

Bradley Worley wrote 6 months ago null point

Actually, I intentionally went with a single-rail voltage-output design for size and simplicity. As the shim outputs are just DC currents through low-value inductors, I didn't see any reason to over-engineer them. I could see myself going to VCCS shim outputs if the current design proves insufficient, though...

Are you sure? [yes] / [no]

Marvin wrote 6 months ago null point

2 DACs and 2 buffers per channel is not over engineered? ;P Seriously though, the Op Amp is only a few resistors from being a VCCS, then temperature changes in the coils won't affect the fields. I'm wondering if there is a smart way to make them bipolar short of having the user swap shim leads. 300ma sounds like a lot for shim coils btw, have you estimated the fields you need?

Are you sure? [yes] / [no]

Bradley Worley wrote 6 months ago null point

Haha, I know; it seemed like a good idea at the time. ;) I've run a few simulations of modified Maxwell and Golay coils, and the currents seem to be in the right ballpark (ca. 100 mA for a couple uT gradient over the whole coil).

Are you sure? [yes] / [no]

Bradley Worley wrote 6 months ago null point

Damn, now you've got me thinking! :P

Adding a high-current negative reg (e.g. LT3015) to supplement the LT1764A would simplify the shim output design... If I cut the design down to a single shim coil, I /might/ be able to squeeze an AF coil output (+/- 1.0 A pk-pk at ~2 kHz) onto the board. That would allow for both adiabatic *and* non-adiabatic experimental schemes! Pretty tempting...

I feel silly for asking, but do you have a good example of your simple opamp VCCS? All my searching yields constant current sink configurations, but nothing bipolar...

Are you sure? [yes] / [no]

Marvin wrote 6 months ago null point

Back of an envelope suggests that you are planning coils with one turn. If there is a way to smoothly produce multiple turns a lot of power will be saved. Flat coils can be etched from circuit boards. The simple output - coil - sense resistor - ground, with neg feedback between the coil and sense resistor will smoothly move from blow to suck as the pos input moves below ground so long as it has dual rail supplies. I wasn't sure so I checked with LTspice. It might be possible to do it with one battery by introducing a 2.5v rail but that would need to be your DAC ground. Stability is key and I'm not sure if it would be.

Are you sure? [yes] / [no]

Bradley Worley wrote 6 months ago null point

Actually, the plan is to wind ten to twenty turns for the coils. Maxwell and Golay coils both support multiple turn configurations. If you want to do better than the back of a napkin, check out GPUfield (http://www.geekysuavo.org/gpufield), which is what I've been using to get rough estimates of coil performance.

Are you sure? [yes] / [no]

klaus.lehnert wrote 6 months ago null point

Great project! Where did you get the case/side panel extrusion from?

Are you sure? [yes] / [no]

Bradley Worley wrote 6 months ago null point

Thanks! The cases are from Hammond manufacturing. I ordered them through Digikey, the part numbers are in the latest BOM included in the source tarball.

Are you sure? [yes] / [no]

klaus.lehnert wrote 6 months ago null point

Thanks!

Are you sure? [yes] / [no]

Marvin wrote 6 months ago null point

Am I reading the schematics right thinking the sensor coil is untuned?

Are you sure? [yes] / [no]

Bradley Worley wrote 6 months ago null point

You're right, the sensor coil isn't part of any LC tank. The signal amplitude is high enough that a tuning cap is unnecessary. However, it could be a means to reduce the other common-mode interference, provided the tuning was bang-on.

Are you sure? [yes] / [no]

Marvin wrote 6 months ago null point

The outdoor signal is sharp, you've implied that it took 15mins and it was teased out of the data with FFT. It's all gone a bit SETI. The Wadsworth magnetometer (Scientific American 1968) has a similar kick/listen with a common coil, he says that 10^-18 W is just audible above noise and that the signal from the bottle is around 10^-16W. An audible "dong" in realtime following a 3 second polarisation at 30 Oersteds, 520 turns and 0.57uF (polystyrene) to tune. Your instrumentation amplifier looks good, the big difference is the tuned coil.

"Encyclopedia of spectroscopy and spectrometry" says about EFNMR "One way around [ringdown delay] is to avoid resonant detection - but unless one uses a non Faraday form of detection (see the section on SQUID detection) this will result in severe SNR loss."

I'm guessing you could be 1 to 2 orders of magnitude signal down.

Are you sure? [yes] / [no]

Bradley Worley wrote 6 months ago null point

It's certainly worth exploring then, thanks! The more I think about it, a digitally switched-in "binary 12-bit" capacitor bank would be a pretty awesome addition to the PyPPM design. Hmm... :)

Are you sure? [yes] / [no]

Bradley Worley wrote 6 months ago null point

Marvin, I'm considering placing a couple ADI ADG714's in the next design to provide a switchable capacitor bank in parallel with the coil inputs on the PyPPM. Any thoughts? :)

Are you sure? [yes] / [no]

majpatmcd wrote 6 months ago null point

Bradley - thanks for sharing. I'm building my own ppm right now, and it's been great to see a different perspective.

Are you sure? [yes] / [no]

Bradley Worley wrote 6 months ago null point

Awesome, thanks! Out of curiosity, did you opt for an adiabatic or non-adiabatic design?

Are you sure? [yes] / [no]

Marvin wrote 6 months ago null point

That question goes way beyond pulsed or swept frequency designs and into deep postgrad territory, you might want to clarify.

Are you sure? [yes] / [no]

Bradley Worley wrote 6 months ago null point

Ah, sorry. My question is related to the adiabatic theorem, and really is one about the time allowed for depolarization.

The PyPPM uses a method called non-adiabatic pulsing, in which the polarization current is quenched rapidly in comparison with the signal frequency. The magnetization thus precesses about the Earth's field.

Alternatively, the adiabatic pulsing method allows for gradual depolarization, so the magnetization orients itself back to Earth's field. The sample then needs an AC "pulse" to re-orient the polarized magnetization into the XY-plane where precession then takes place. (The Magritek Terranova uses this method)

Are you sure? [yes] / [no]

majpatmcd wrote 6 months ago null point

Ah, I see. No quenching circuit on mine. v0.1 is going to be simple 100ms pulse followed by 1-2 sec of data collection time with a 50ms (or so ) break while the MOSFET relays do their thing. Once I'm sure all the components work together reasonably well, I thought I may be able to energize the fluid with an HF field.

Are you sure? [yes] / [no]

Bradley Worley wrote 6 months ago null point

Awesome! Best of luck on your PPM. I can't wait to read about it!

How high is your "HF"? There is a type of magnetometer called an Overhauser Effect Magnetometer that uses the transfer of magnetic polarization from a free radical (e.g. TEMPOL) to the surrounding hydrogen nuclei; it uses HF polarization in the 1 MHz range at Earth's field.

If you're hoping to get a signal without free radicals *and* without DC pre-polarization, be prepared to signal average for a very long time. ;)

Are you sure? [yes] / [no]

majpatmcd wrote 6 months ago null point

I've looked through the journals I've access to on NOE magnetometers and have come up will practically nil practical information. Then again, I'm not in a technical field of work. I've never heard of TEMPOL (I was going to see what kerosene did...), but thats a good lead for me to explore. The little I've managed to scrape together it that I'm to send about 5watts of 600khz - 60mhz from my HF radio, or some simple RF generator (small range to experiment with, right?) to charge the free radicals. I'm a couple of months from getting to this point, but we'll see.

Are you sure? [yes] / [no]

majpatmcd wrote 6 months ago null point

Wow. $55 for 100mg. I hope I don't need much of this TEMPOL you speak of.

Are you sure? [yes] / [no]

Bradley Worley wrote 6 months ago null point

Yeah, it's not cheap. You're on the right track, keep it up! :) TEMPOL was just the first stable free radical that came to mind, but you will need something with an unpaired electron if you're going to build an OE magnetometer.

Are you sure? [yes] / [no]

Marvin wrote 6 months ago null point

Is that majorly toxic? Free radical compounds make me nervous. The signal from a small bottle of distilled water should be clearly audible above noise with enough amplification. I'm trying to work out why the signal seems to be so low. There is a trick with iron sulphate but the line width may not be acceptable. Rushing into population pumping methods seems a little rash (but then I've only been following for a few days).

Are you sure? [yes] / [no]

majpatmcd wrote 6 months ago null point

TEMPOL is used alternately as a pain killer, so it can't be too toxic.

Are you sure? [yes] / [no]

Bradley Worley wrote 6 months ago null point

Actually, I just pulled the material safety datasheet on TEMPOL (4-hydroxy-TEMPO) from Sigma-Aldrich, and it's nasty stuff. It's a skin, eye and respiratory irritant in solid form... I'd avoid it. :)

Marvin, you're quite right, the expected SNR is high enough in a PPM experiment to avoid radicals, and the PyPPM won't jump into Overhauser territory for that reason. Shimming and humbucking are simpler solutions to the current signal level challenge for the PyPPM.

That said, OE magnetometers require less electrical power and can take more rapid measurements than can traditional systems, so they have an advantage where portability or speed are key.

Are you sure? [yes] / [no]

Marvin wrote 6 months ago null point

Just to wrap that up, TEMPOL painkiller is just a brand name for paracetamol.

Are you sure? [yes] / [no]

Bradley Worley wrote 6 months ago null point

Woah! Sorry, I have to kill this idea that TEMPOL and Tylenol are the same thing.

TEMPOL: 4-hydroxy-2,2,6,6-tetramethylpiperidin-1-oxyl
Tylenol: N-(4-hydroxyphenyl)acetamide

Apparently acetaminophen/paracetamol is sold under the name Tempol, but that is not the same thing as TEMPOL, which is *not* safe to ingest, inhale or touch.

Are you sure? [yes] / [no]

Jasmine wrote 6 months ago null point

Hey Brad, It's great to see your bio up on http://hackaday.com/2014/06/12/thp-hacker-bio/. You might want to add a link to it form your project links? We are about to start community voting, so you might want to get an update or two in soon.

Are you sure? [yes] / [no]

Bradley Worley wrote 6 months ago null point

Hi Jasmine, great idea! Thanks for the encouragement!

Are you sure? [yes] / [no]

Marvin wrote 6 months ago null point

Would it be better to have the bandpass filter between the gain stages?

Are you sure? [yes] / [no]

Bradley Worley wrote 6 months ago null point

Hmm, I have to plead ignorance there... My use of the BPF is honestly for anti-aliasing. Is there a reason it'd be better?

Are you sure? [yes] / [no]

Marvin wrote 6 months ago null point

If I bring up a signal I want to say 1v pk-pk, but it has a dozen 1v signals I don't, then the total signal would be clipping the rails. Ideally I'd think you'd want an intermediate level, where the useful signal is high enough not to be degraded by

Are you sure? [yes] / [no]

Marvin wrote 6 months ago null point

Oh I'm going to love hackaday.io tiny comments boxes.
...subsequent processing but low enough not to suffer distortion. Then filter and amplify to a point it's meaningful for the ADC.

Are you sure? [yes] / [no]

Bradley Worley wrote 6 months ago null point

Ah, that makes sense... I'll have to consider trying that in the next revision... Thanks!

Are you sure? [yes] / [no]

peter jansen wrote 6 months ago null point

Really exciting! I've thought about trying to do this ever since taking a class on medical imaging in grad school, but I don't know very much about radio receivers. Absolutely fantastic that you're making an open source version that's a starting point for all of us!

Are you sure? [yes] / [no]

Bradley Worley wrote 6 months ago null point

Thanks Peter! Actually, my similar lack of experience with RF design was what prompted me to try EFNMR instead of a full-fledged pulsed NMR design. The highest frequencies coming from the sample are a few kHz in the Earth's field.

That said, a pulsed design is definitely going to be a follow-up project to the PyPPM... ;)

Are you sure? [yes] / [no]

darkforce314 wrote 6 months ago null point

Great project! I'm brutally interested!
Can't wait for schematics and desing of fully functional one!
We all proud about having Bradley as Hackaday member! Good luck!

Are you sure? [yes] / [no]

Bradley Worley wrote 6 months ago null point

Thanks darkforce314! If you're interested, the schematics are available inside the source files tarball (linked from this page) in designs/ppm-1.3. That version is known to work, and with improvements in the coil design, it will probably end up being the final PyPPM circuit.

I also plan to post a page-by-page description of the schematics here.

Thanks for all the encouragement!

Are you sure? [yes] / [no]

averagejoe_85 wrote 6 months ago null point

Great work! I am about six months in on my PPM and have not had any luck yet. I have learned much from your write up :)

Are you sure? [yes] / [no]

Bradley Worley wrote 6 months ago null point

Right on! One of my main goals is to provide a truly working model for others to learn from, so that's great. :)

The design of a working PPM is no small feat, so keep it up! And let me know what else I can clarify or explain in PyPPM; I really want to make this science accessible for more experimenters.

Are you sure? [yes] / [no]

Digital Corpus wrote 7 months ago null point

Pardon the ignorance, but this project is an [over simplified] open source research tool, correct?

Are you sure? [yes] / [no]

Bradley Worley wrote 7 months ago null point

No worries, thanks for the interest! Actually, Earth's/low field NMR has significant industrial applications, particularly in oil and gas.

That said, one goal of the PyPPM is to bring an inexpensive open-source device to the community that could be used in undergraduate courses, for example. Not every university can afford to let undergraduates use their million-dollar high-field NMR spectrometer.

But yeah, NMR *is* mainly used for research purposes. :)

Are you sure? [yes] / [no]

Bradley Worley wrote 7 months ago null point

I should also mention that PyPPM is not one of my research projects. It's actually a personal side project; if anything it's been a distraction from my thesis work. :)

Are you sure? [yes] / [no]

Adam Fabio wrote 7 months ago null point

Awesome project, and a great entry for The Hackaday Prize! Don't forget to document. Can you tell us a bit more about the your implementation of the Proton Precession Magnetometer? Is your coil up in the PVC frame in Picture #3?

Are you sure? [yes] / [no]

Bradley Worley wrote 7 months ago null point

Thanks Adam! I'm actually settling in today with a few Red Bulls and chip bags to document as much as I can here on HAD.io...

You're right, the coil is in the PVC frame, and the PPM board is dangling by coax from it. ;)

Are you sure? [yes] / [no]

Adam Fabio wrote 6 months ago null point

Great update Brad! I like the internet connected aspect as well - The more open science data we get out there for research and education, the better! That also fits right in with the connected portion of The Hackaday Prize.

Are you sure? [yes] / [no]

Similar projects