MRI4ALL Hackathon

Duration:09/2023 - 12/2023
Technologies:Python, PyQt, Vagrant, DICOM
Collaborators:Leeor Alon

Goal of the MRI4ALL Hackathon, which took place in October 2023, was to jointly develop a fully-fledged low-field MRI scanner in just 4 days and to release all developed resources as open-source packages, so that other groups can utilize them for own projects. 52 researchers from 16 different institutions participated in the hackathon and created a scanner named “Zeugmatron Z1” - in reference to the term “Zeugmatography” that was initially used by Nobel-price winner Paul Lauterbur when he invented MRI.

In preparation for the hackathon, software was developed using the Magpylib and Pymoo libraries to calculate the optimal placement of 990 N40UH permanent magnets into a Hallbach array. The arrangement was transferred into CAD software and used to design ring-shaped holders for the magnets. A shell for the magnet as well as nestable inserts were designed, including the holder for a cooling system, three holders for gradient coils, holders for shim magnets, and an insert for the RF coil. Wire patterns for the gradient coils were calculated using the CoilGen package and imprinted into the gradient inserts. Components were 3D-printed using polycarbonate.

During the event, participants worked in 4 teams to assemble the scanner. Polarities of the magnets were determined, ring-formers were populated, and the 12 magnet rings were fastened together with brass bolts. To evaluate homogeneity, a field-mapping robot was created using Arduino-controlled step motors and a Hall probe. Measured field maps were used to calculate the placement of shim magnets. Gradient coils were built by bending enameled copper wire and glueing it into the imprints of the 3D-printed holders. A solenoid RF coil was built and tuned to 1.83 MHz. A Red Pitaya 122-16 FPGA-based SDR board was connected to a GPA-FHDO gradient amplifier and loaded with the MaRCoS firmware to control the scanner components. Comprehensive console software for programming sequences, configuring scans, and viewing acquired images was developed in Python using PyQt5, PyPulseq, and additional support libraries.

After resolving a few technical issues, MRI signals were successfully received, and the scanner started producing first images. All developed soruce code and resources have been published on the project website. The scanner is now operational and used as prototyping environment for student education projects.

More information