Scalable, multi-channel current supply board that can provide up to 8 amps per channel for driving inductive loads such as local B0 shim coils.


Nick Arango1, Jason P Stockmann2, Thomas Witzel2,3, Lawrence Wald2,3, and Jacob White1

Estimated cost

75USD per channel (incl. heat sink)


Stable release, MIT License

We have developed a low-cost 8-channel digitally-programmable current driver that can supply up to 8 amps DC per channel (up to 60 volt output). The board is intended as a scalable solution for supplying current to matrix shim coil arrays that require an independent, dynamically-switchable current driver for each shim coil element. Cost per channel is ~$75 (incl. heat sink). The circuit uses a simple feedback control topology built around OPA549 linear power stage op amps in a push-pull configuration. The voltage across a current sense resistor is sensed in the feedback topology to allow control of the actual current output to the load. The resistors and capacitors in the feedback loops can be adjusted to ensure stability for driving a particular load impedance. With the component values used in the board files (see below), the feedback loop compensation elements is set up to compensate a 10 uH reactive load. The design retains sufficient gain in the audio frequency range to reject disturbances caused by gradient coil switching in the MRI scanner environment. The end result is a stable output current (>45 deg phase margin) with ~50us rise time and very good disturbance rejection for maintaining stable shim currents during MR acquisitions. The outputs of each channel can be tied together to increase the current beyond 8 amps. For most loads, heat sinking the OPA549s is required since most of the voltage drop (and heat dissipation) will occur inside these ICs.

The board, as configured will work up to 25V. For higher voltage operation (up to 60V) higher voltage capacitors must be used and some digital circuitry must be removed. A version with “no-stuff” declarations for 60V operation is in progress.

An 8-channel 16-bit DAC is used to update the current setting on each channel. The current sense resistor voltage drop is buffered and sent to an ADC so that the output current on each channel can be monitored by computer. Presently the board is controlled using a Raspberry Pi device with a T-cobbler breakout board.



1Electrical Engineering and Computer Science, Massachusetts Institute of Technology, Cambridge, MA, United States,

2A. A. Martinos Center for Biomedical Imaging, Massachusetts General Hospital, Charlestown, MA, United States,

3Harvard Medical School, Boston, MA, United States


Please Share