A low-cost (<$500 USD) FPGA-based console capable of real-time control
Suma Anand1, Jason P. Stockmann2,3, Lawrence L. Wald2,3, and Thomas Witzel2,3

1Electrical Engineering and Computer Science, Massachusetts Institute of Technology, Cambridge, MA, United States, 2Harvard Medical School, Boston, MA, United States, 3A. A. Martinos Center for Biomedical Imaging, Charlestown, MA, United States


Conventional MRI consoles are high-cost and difficult to customize, typically using a proprietary language for creating pulse sequences. Recently, FPGAs have become the tool of choice in designing custom MRI consoles for their flexibility and speed. In this work, we describe a low-cost, open source, FPGA-based console using an off-the-shelf board that provides flexibility in pulse-sequence programming, robust timing, and excellent signal stability. Our goal is to facilitate the development of custom acquisition methods and provide a useful console for MR education and low-cost systems. We demonstrate its function by acquiring a 2D spin-echo image on an MIT/Martinos Tabletop scanner.


Conventional MRI consoles and NMR spectrometers remain high-cost, closed-source, and limited in configurability and programmability. Recently, researchers have developed custom low-cost, modular and open source consoles1-4. However, these systems still have material costs between $2,000 and $10,000 or rely on hardware purposed for NMR/MRI only. Here we present an open source console for under a total cost of $500 with a simple and flexible architecture based on the STEMLab/Red Pitaya (Red Pitaya LLC, Newport News, VA), a Xilinx Zynq 7010 SoC based device readily available off-the-shelf and already used at many educational institutions. With our system, one can perform NMR experiments using the STEMLab alone, or MRI experiments with the addition of a simple 3-channel DAC board.


The STEMLab/Red Pitaya comes with a Xilinx Zynq 7010 SoC, two 125 Msps 14-bit resolution ADCs and two 125 Msps 14-bit resolution DACs and 16 DIO pins connected to the programmable logic and currently sells for $329 USD. This hardware configuration suits it ideally for NMR/MRI applications, allowing direct digitization of the MR signals from DC-40MHz Larmor frequency and higher frequency operation if an external mixing stage is added. In order to provide gradient waveforms, we connected 3 AD5780 (Analog Devices, Norwood, MA) 18-bit resolution DACs externally.

The FPGA has been programmed to include a 48-bit frequency resolution programmable numerically controlled oscillator (NCO), digital IQ modulation and demodulation as well as down-conversion of the receiver signal to 2.5Msps baseband. The transmit signal is up-converted from a freely programmable sample rate independent of the down-conversion rate. The gradient DACs are controlled by a custom SPI core providing simultaneous updates of the gradient outputs at a rate of up to 200 kHz, with a SPI clock of 33 MHz.

The general architecture of this spectrometer is that of an asymmetric multiprocessing system (AMP). The ZYNQ 7010 in addition to the FPGA includes a Dual-Core ARM9 CPU running at a clock speed of 866 MHz and using an embedded Linux OS. The pulse sequences are executed in hard real-time by a micro-sequencer core on the FPGA with a time granularity of 7 ns (143 MHz). The micro-sequencer is 3-stage pipelined VLIW RISC CPU with aperiodic command execution which controls all the events. It also features branches and jump operations to perform complex sequences in hard real-time independent of the ARM CPU. The transmit, receive and gradient system all utilize DMA and can, therefore, provide precise waveform timing independent of the ARM CPU's timing or the micro-sequencer’s state. The FPGA cores share all their memory with the ARM CPU, and the CPU prepares the pulse sequence for the micro-sequencer. It uses a NEON double precision FPU to calculate the RF pulses and gradient waveforms asynchronous to the sequence execution. This architecture allows RF pulses, gradient waveforms, or even the pulse sequence itself to be updated just a few microseconds before execution. The ARM CPU also has access to the received data in real time and is capable of making modifications to the pulse sequence based on the image data. While the spectrometer with its Linux OS is capable of operating on its own, for example with web-based control, our typical application connects the spectrometer to an application on a PC or mobile device, which handles high-level console control/UI and image display (Figure 2). We are currently developing a python-based framework for PCs that is geared towards educational purposes.


We show basic NMR results and images taken with our low-cost spectrometer connected to the MIT/Martinos table-top scanner5 (17.2 MHz). The signal enters the device directly from the scanner preamplifier, and digital data received from the socket is displayed on a client computer with a simple Graphic User Interface (Figure 2). The system shows good signal SNR and sufficient phase stability for imaging without ghosting artifacts (Figure 3). Figure 4 shows the phase stability of the acquired spin echoes over time.

Discussion and Conclusion

A low-cost, open source FPGA-based console with the potential to update pulse sequences in real time was developed. Its function has been demonstrated by acquiring a 2D image on the MIT/Martinos Tabletop system5. We have laid the groundwork for a suite of educational applications and also enable a host of interesting research applications for the community over-all at a low entry cost (under $500). All the source code, hardware schematics, and DAC PCBs will be available on a website by the time of the conference.


We would like to acknowledge Pavel Demin for his Red Pitaya development environment.


  1. P. P. Stang, et al, "Medusa: a Scalable MR Console Using USB," IEEE Trans. Med. Imag., vol. 31, pp. 370-379, 2012.
  2. W. Tang, et al, “A home-built digital optical MRI console using high-speed serial links,” Magn. Reson. Med., vol. 74, pp. 578-588, 2015.
  3. M. Tsuda, et al, "Development of Digital MRI Consoles Using General-Purpose Digital Instruments and Microcontroller Boards," Appl. Magn. Reson., vol. 47, pp. 847-858, 2016.
  4. C. J. Hasselwander, Z. Cao, & W.A. Grissom, “gr-MRI: A software package for magnetic resonance imaging using software defined radios”, J. Magn. Reson., 270, 47-55.
  5. https://tabletop.martinos.org/


Figure 1. Diagram of the console with the Red Pitaya, using an MIT/Martinos Tabletop scanner5. The Red Pitaya outputs RF excitations and SPI waveforms to the T/R switch and gradient coils, respectively, after amplification. Received data from the Tabletop is transmitted back to the Red Pitaya, then sent to a client via a 1Gb/s TCP Ethernet socket to be displayed.

Figure 2. A spin echo, captured on the client on the data acquisition computer (TE = 5ms). The phantom was a 1cm diameter tube of water. The bottom graph shows the same data as the top graph, rescaled. The data is transmitted from the server to the client via a 1 Gb/s TCP Ethernet socket.

Figure 3. An image of a star phantom acquired on an MIT/Martinos Tabletop system (17.2 MHz) with the console via a 64-line spin echo sequence, TE = 5ms, TR = 3s, FOV = 1cm, no averages. The phantom is a 1cm-diameter tube containing water and a disk of ABS plastic with a star-shaped cutout.

Figure 4. 200 spin echoes acquired with the console, overlaid in time. The signal is very stable over time. Examining the real and imaginary components of the signal implies that the system has excellent phase stability.

Proc. Intl. Soc. Mag. Reson. Med. 26 (2018)