Consumer-Grade Microcontrollers and Considerations for MRI Console Development
Sergei Obruchkov1, John Zhen2, and Robin Dykstra3

1Robinson Research Institute, New Zealand, 2School of Engineering, University of Western Australia, Australia, 3School of Engineering and Computer Science, Victoria University of Wellington, New Zealand

Synopsis

Maker communities are rapidly growing around the world driving the drastic increase in the number of consumer-grade electronic development boards. Navigating this field and choosing an appropriate device for your needs can be difficult, time-consuming and to some extent a “paralyzing” task. This talk will attempt to navigate through available choices and walk you through some basic requirements and examples. Starting with basic design specifications such as CPU speed requirements, IO connectivity, choice of available SDKs and SDEs. Attempt to highlight some of the pitfalls beginners can get into and how to avoid them.

Introduction

With the growing number of maker communities and the ever-expanding interest in the Internet of Things (IoT) worldwide, the number of web-based stores and communities like Pololu, Sparkfun, Adafruit just to name a few, had drastically increased the number of consumer-grade microcontrollers available. Both small and big OEM players have entered the market to make their devices available in mass quantities, often at bargain prices e.g. Espressif(ESP), Cypress, Microchip (AVR), Texas Instruments, Xilinx, Altera, Intel, Raspberry Pi, Arduino, Particle.io, Onion.io, Beagle Bone, ZedBoard, Pynq, RedPitaya.

Navigating the field and choosing an appropriate device for your needs can be difficult, time-consuming and to some extent a “paralyzing” task. This talk will attempt to navigate through available choices and walk you through some basic requirements and examples.The first question should always be: What it that we are building? What are user requirements and what are systems specifications? Is this:

  • A small low field MR device for IoT wearable applications?
  • An earth field magnetometer?
  • A high-frequency multichannel Field Mapping Camera?
  • A modest MRI console, 3 gradients, 1 RF transceiver?
  • A fully-fledged MRI console capable of X-number of Gradient Control channels,
    X-number of RF-Transceiver channels, X-Number of Shims and a powerful reconstruction engine?

Choosing a Device

A good starting point is to take a look at a minimum viable system. A simple NMR or MRI console is just a waveform player and recorder after all. Simplest architectures can start with DSP/MCU or an FPGA chip and grow from there some examples of the systems are:

  • DSP Based: Magritek Kea 2, MR Solutions Evo, Tech-Mag, etc…
  • FPGA Based: OpenNMR 1&2, Medusa, RS2D’s Chameleon 3, etc…

(*Note: Often systems will have both DSP and FPGA due to timing and IO requirements)

Choosing data transport between the Host PC and the console will affect your architecture choice e.g. USB, Ethernet, PCIe, Optical or WiFi. Most modern consumer development boards will have out of the box capability to do USB 2.0 or 10Mb/100Mb/1Gb Ethernet. 1Gb Ethernet should be fast enough for even some demanding applications. If faster communication is required it is still fairly easy to find boards with USB 3.0 and even PCIe root complexes.

Avoiding Pitfalls

For the beginners, the biggest pitfall is to underestimate the importance of synchronization between RF Transceiver and the CPU clock. Without it averaging and imaging becomes almost impossible. Using deterministic programming methods when coding MCUs and DSPs is a must, or alternatively use FPGA for time-critical execution.

One of the requirements people forget too often is system monitoring, e.g. temperature. Crystal oscillators drift with temperature, increasing phase jitter, losing data resolution and affecting your SNR. ADCs, DACs outputs drift with changes in temperatures as well. Thus, ability to monitor output for debugging and compensation, while not mandatory is a very nice feature.

Learning something new and or picking up a bleeding edge hardware can be challenging. It is always a good idea to start with what you know or jumping on a platform that has a large development/support community.

Modern System on Chip Devices

In the last few years, developments in small digital electronics have produced some unique FPGA devices that now include powerful processors. These are System-on-Chip (SoC) devices that essentially combine a processor and FPGA logic fabric onto a single chip. An example of a SoC is the Zynq-7000 from Xilinx and Altera Cyclone V SoC. The SoCs are primarily fully-fledged CPUs capable of running a full stack Operating System and can behave as a Host PC, surrounded by FPGA fabric, and can be interconnected together using DMA, effectively merging Host and the peripherals together.

The SoC systems are capable of processing MR data in real time. With some suitable supporting hardware, a SoC system can be used to replace the computer and lots of the digital electronics normally needed in an MR system, greatly increasing the mobility of an NMR system.

Out of the box Inexpensive SoC Based Devices:

  • Xilinx Based: RedPitaya, PYNQ, ZedBoard…
  • Altera Based: DE10-Nano by Terasic, Sockit by Arrow…

Other good starter alternatives:

  • Texas Instruments: BeagleBoard, kiwiSDR
  • National Instruments/Ettus: USRP

Acknowledgements

No acknowledgement found.

References

No reference found.
Proc. Intl. Soc. Mag. Reson. Med. 26 (2018)