I was cleaning house a bit, and among my old files I found this, which might be worth sharing. Years ago I made a centralized power supply for a custom 2-photon imaging system I built. There were two epi detectors (for red & green fluorescence) and three trans detectors (red, green, and IR-based “DIC-like Dodt” contrast). I had an Arduino control everything. There were knobs for setting PMT voltages, and switches for turning individual channels on-and-off, and a master for switching everything off when opening the light-proof box. The big knob to the left controlled the laser intensity (it was hooked up to a stepper that turned a half-wave plate to split off some of the power using a polarizing beam splitting cube). The Arduino controlled the LCD display too, reading in analog signals and converting them to actual voltages for display.
The green display on top is a pressure sensor, which we used for patching.
Design and programming was very fast and easy. The machine shop modified the instrument box to my specs, and painted it for me. What took the longest was soldering everything up. That alone took most of an entire day.
It worked fine, and it was nice to have a tactile interface.
In my own lab, I took a different approach. I use Processing to talk to Arduinos and I have a simple GUI to adjust the PMTs. Less soldering, but no tactile interface (unless you count clicking the computer mouse). It works mostly fine, but when rebooting the host computer, the USB port assignments sometimes change, and it takes changing the Processing source code to get it working again. In practice, it only comes up once or twice a year, so it’s not a big hassle.