NMRduino

NMRduino is an accessible, open-source spectrometer designed for exploring low-frequency Nuclear Magnetic Resonance (NMR). Built around the popular Arduino ecosystem, it simplifies the setup and control of NMR experiments, making this powerful technology available to students, researchers, and hobbyists alike. The compact, plug-and-play hardware interfaces easily with laptops, desktops, or Raspberry Pi computers via USB, and allows for flexible control of magnetic fields and pulse sequences.

Designed to bridge the gap between advanced research tools and educational setups, NMRduino supports a wide range of applications, from studying hyperpolarized NMR systems and relaxation phenomena to teaching the basics of magnetic resonance. Its versatile design allows it to work with conventional rf-inductive pickup coils or alternative sensors like atomic magnetometers, offering a unique, hands-on approach to learning and experimentation in magnetic resonance.

Hardware Specifications

Analog Input16 bits, 100 ksps, 65536 samples, ±5 V or ±10 V input range, ±25 V protection
Analog Output2 × 1.8 A, 1 μs switching time, 12 bits, bipolar
Digital Output2 × 1.2 A, 1 × 2.4 A, 1 μs switching time, bipolar
Microcontroller UnitBased on IMXRT1062 chip, 600 MHz clock speed (Teensy 4.1, compatible with Arduino)
FirmwareOpen-source, written in the Arduino programming language
I/O Pulse SequenceUp to 25k events, 10 ppm global timing accuracy
Power supply5 V via USB micro-B port
Carrier PCBCredit-card size (85 mm × 54 mm)
SensorInductive coils, optically pumped magnetometers

Software

Oscilloscope and Spectrum Analyzer

Feature: Real-time filtering (low pass, high pass, band pass, band stop).

Feature: Real-time spectral analysis.

Supports buffered and unbuffered (streamed) mode for variable sample rates and number of samples.


Pulse and Acquire

Feature: Live-averaging.

Feature: Pulse sequence upload and preview.

Supports pulse sequences with up to 25k events and 1 μs resolution. Length of a single pulse sequence may be up to several days and can be repeated up to several thousand times.


Sequential Measurements

Feature: Large List Support – Handles more than 65,536 entries.

Feature: Pause and Resume – Measurements can be stopped and continued.

Feature: Flexible Parameters – Each measurement can have a custom set of adjustable parameters.

Supports the definition of sequential measurements in a .list file with a clear tabular structure.


Plug and Play Hardware Support

Feature: Hot-Swappable – Connect or disconnect devices without restarting the NMRduino user interface..

Feature: Configuration Memory – Retains settings after initial setup, eliminating the need for manual reconfiguration.

Custom Device Drivers and Tasks

class CustomDevice: public DeviceBase {
    // Custom code...
};

class CustomTask: public TaskBase {
    // Custom code...
};

Supports well defined interfaces for custom devices and tasks.

Publications

NMRduino: A modular, open-source, low-field magnetic resonance platform

This paper introduces NMRduino, a versatile and cost-effective sub-MHz NMR spectrometer built on open-source hardware and software, particularly from the Arduino ecosystem. Designed to simplify instrument setup and data acquisition, NMRduino makes experimental NMR spectroscopy more accessible to researchers and educators. Its modular design supports customization, allowing users to adapt the platform for specific needs, such as advanced signal processing or integration of new hardware. With its potential for widespread use in diverse environments, NMRduino could significantly expand the applications of NMR spectroscopy in both research and education.

Journal of Magnetic Resonance 2024, 362, 107665, DOI: 10.1016/j.jmr.2024.107665