Networked Magnet Power Supply Controller
The electromagnet at the equator of the three meter experiment is powered by the Kinetics Industries three-phase rectifier pictured below.
The rectifier accepts a 4-20mA input for control, but it was more convenient to control the supply via a private local network connection. The networked controller pictured below uses an Arduino microcontroller board with ethernet shield and a Texas Instruments DAC8551 16 bit digital-to-analog converter.
Isolated power supplies and an optoisolator for the DAC's digital serial interface provide complete galvanic isolation between the network equipment and the high power supply's control circuitry. The DAC's 0-5V output is amplified to 0-10V with an op amp and applied across the 470 ohm input resistance of the rectifier control input. Full scale and zero output are trimmed in firmware.
Magnet current is measured using a Honeywell CSLA2DK non-contact Hall effect current sensor and one of the Arduino's built in 10 bit analog-to-digital converters. The supply output is noisy, allowing the use of oversampling and decimation to increase the resolution of the current measurement. The controller uses a telnet interface; simple text commands are used to set the supply voltage, to return a measurement of the current, and to shut down and reset the controller.
The controller can be manually commanded from a terminal, but in normal operation, a graphical interface written in Python establishes a telnet connection and allows easy control and display of the voltage and current. The GUI also logs the settings and measured current to a timestamped file. You can view or get the code for the GUI and the Arduino firmware at GitHub: https://github.com/danzimmerman/python-magsupply