
The Rigol DP832(A) has been one of the best selling power supplies on the market for years. After some design quirks (7 years ago, discovered by Dave Jones of the EEVBlog) it has matured into a reliable product with no bugs I am aware of today.
For the money involved, its simply very hard to get more bang for the buck. One of the goodies is a solid USB SCPI programmability, so it can be used in automated testing without problems (not so common with competitors).
On the downsides we have some missing functionality (no “official” screenshots, but thanks to Peter Dreisiebner who found an inofficial command it now works), and a certain tendency to drift, especially annoying in the “A” versions where you have a 3 digit voltage resolution on the display. Rigol states that calibration is due every year, and they charge about 100€ plus shipping and VAT for it, a bit much for a PSU costing some 450€ gross.
Rigol provides a manual calibration procedure (takes 1h) if you insist to do it by yourself, and the net (look at EEVBlog and GitHub) has some scripts that automate at least parts of it. You still have to plug channels and switch DMM ranges, … not what I liked.
With several DP832s in the shop, I wanted a fully automatic procedure to do everything at 1 button pressed. In order to do that, we must
- automatically route channel 1, 2 or 3 to the DMM
- automatically select the DMM voltage or current channels
- trigger the calibration in the PSU
- do all the measurements in the DMM
- and write them back.
First, we need a good quality, 6 1/2 digit DMM with a 10A range. The DM3068 recommended by Rigol is very old and exotic, but the Keysight 34461A, 34465A and 34470A are a perfect choice. Except for the added 10A range, they are upwards compatible descendents of the legendary industry standard 34401A (1991-2016). The 34401A can usually be emulated by almost all DMMs with 6 1/2 or more digits, regardless of the manufacturer.
Next, we need a little computer-controlled switchbox to connect the PSU channels to the DMM. Voltage and up to 3.2A of current needs to be measured, so the switches should be robust enough to do that. I used 10A relays, so no problem. The whole switchbox is implemented as an Arduino shield and is powered by USB. Apart from three SPDT relays I added 5 LEDs to show the user what is selected (Channel 1..3, voltage or current mode). The Arduino is programmed as a SCPI device understanding a few commands setting the relays and LEDs, along with standard SCPI functionality. It is automatically detected by PyVisa and NI Explorer, if needed.
The guts of the part are shown below:

The Arduino Leonardo sits below (USB socket at the left), the shield above has the 3 relays and the LED outputs. The PCB of the shield is below:

The Arduino software can be downloaded here (free software, under GPL V3):
Now the PC software side needs to be done. Starting off an EEVBlog/GitHub semiautomated solution I wrote a script in Python that did absolutely everything without user interaction. A full calibration of all channels takes about 10 minutes. There were some gotchas that need to be covered. The EEVBLog/GitHub scripts had a lot of manual interactions in them (Change cables for a new channel, switch to a new DMM with a 10A range, …). All that got kicked out and was replaced by commands to the switchbox. As all DMMs I used have a 10A range, only the 10A input terminal had to be selected by the program. A nuisance is that in cal mode some DP832s put out negative voltages at the very low value points of their calibration lists for voltage and current. Some solutions on the net tried to backstep to find the first positive calibration point, what I did was to add some more points at the low end and to ignore all measurements that were negative. That worked, and its silly anyway to use a DP832 as a precise very low voltage or current source. A 450€ part is no SMU, definitively !
To use, just attach outputs 1, 2 and 3 to the DP832 channels (dont forget ground leads), and then attach the blue output to the DMMs 10A socket, ground to DMM ground and the yellow socket to the DMM voltage channel. The DP832, the DMM and the switchbox need an USB connection to the PC. After starting the script RigolDP832Calibrator.py everything should work by itself.
So far, it works without problems !
A Python script can be downloaded here: