Close
0%
0%

High Dynamic Range Precision Current Supply

An open source isolated precision constant current supply from 10nA to 400mA, particularly helpful for calibrating MetaShunt power profiler

Similar projects worth following
This project provides a USB-controlled, high dynamic range, precision current supply. It was designed as a calibration tool for MetaShunt V2, but can be used anywhere high accuracy, isolation, and high dynamic range is needed.

It is open source hardware, firmware, and interface.


Note: The fabrication costs of the first 2 prototype units were provided by JLCPCB as part of the OSHWLab Stars promotion. Thanks to them for the support!

Link to OSHWLabs project

Logs:

  • Accuracy Testing with Desktop Multimeter

    Jake Wachlin12/23/2025 at 00:55 0 comments

    I was able to perform some accuracy testing with a Rigol DM3068 6 1/2 digit desktop digital multimeter. This testing provides another level of validation of the accuracy of this project. I tested two units. The first unit was in the constant reference voltage mode. The second unit was in the adjustable reference voltage mode, with various current commands set. The below tables shows the actual commands (which are sometimes slightly odd numbers due to the limited bits of the DAC in the adjustable reference voltage mode.) The accuracy claims are from the DM3068 datasheet for the 1 Year accuracy specification. The accuracy is given in % of reading and % of range, so both are shown here. The first table consists of measurements for the constant reference voltage mode.

    Actual CommandedMeasured CurrentErrorError (%)DM3068 Claimed Accuracy
    0.3000 uA0.2965 uA-0.0035 uA-1.2%0.00015 uA + 0.03uA = 0.03015 uA
    3.3000 uA3.2945 uA-0.0055 uA-0.17%0.00165 uA + 0.03 uA = 0.03165 uA
    30.2999 uA30.2469 uA-0.053 uA-0.17%0.01515 uA + 0.03 uA = 0.04515 uA
    0.300296 mA0.300211 mA-0.085 uA-0.028%0.15 uA + 0.06 uA = 0.21 uA
    3.00016 mA2.99853 mA-1.63 uA-0.054%1.5 uA + 3 uA = 4.5 uA
    29.9859 mA29.9920 mA6.1 uA0.020%15 uA + 6 uA + 21 uA
    0.234107 A0.233970 A-0.137 mA-0.059%0.23 mA + 4 mA = 4.23 mA
    0.389206 A0.388789 A-0.417 mA-0.11%0.39 mA + 4 mA = 4.39 mA

    Note that for every single measurement, the measured error was smaller than the claimed 1-year accuracy of the DMM used, indicating that this device is precise to a higher level than I can measure!

    The table below shows the measurements for the adjustable reference voltage mode.

    Actual CommandedMeasured CurrentErrorError (%)DM3068 Claimed Accuracy
    0.0500 uA0.0436 uA-0.0064 uA-13%0.000025 uA + 0.03 uA = 0.03uA
    0.0200 uA0.0156 uA-0.0044 uA-22%0.00001 uA + 0.03 uA = 0.03 uA
    0.1000 uA0.0960 uA-0.004 uA-4%0.00005 uA + 0.03 uA = 0.03 uA
    1.000 uA0.9960 uA-0.004 uA-0.4%0.0005 uA + 0.03 uA = 0.0305 uA
    9.9999 uA9.9877 uA-0.0122 uA-0.12%0.005 uA + 0.03 uA = 0.035 uA
    99.9999 uA99.9818 uA-0.0181 uA-0.018%0.05 uA + 0.03 uA = 0.08 uA
    1.00052 mA1.000397 mA-0.123 uA-0.012%0.50 uA + 0.06 uA = 0.56 uA
    9.99302 mA9.99955 mA6.53 uA0.065%5.0 uA + 3.0 uA = 8.0 uA
    99.9638 mA99.935 mA-28.8 uA-0.029%50 uA + 6 uA = 56 uA
    250.000 mA249.810 mA-0.19 mA-0.076%0.25 mA + 4 mA = 4.25 mA

    Again, for every single measurement, the measured error was significantly smaller than the claimed 1-year accuracy of the DMM used, indicating that this device is precise to a higher level than I can measure!

  • Accuracy Analysis

    Jake Wachlin12/21/2025 at 15:44 0 comments

    An important factor to the usefulness of this device is the worst-case accuracy of the current supply. I performed an analysis, which is included in the Github repo and described here. To understand the calculations, let's first discuss the key components and accuracy metrics. Note: all calibration is assumed to occur in climate controlled locations, so variability over temperature is ignored here.

    ComponentAccuracy MetricNotes
    REF30300.2%Fixed reference voltage
    DAC80501TUE 0.06% FSRAdjustable reference voltage
    AD860350uV max offset voltage
    AD82760.05% gain error; 500uV max system offset voltage
    Shunt ResistorsAll 0.1% accuracy
    AO3400A26.5-48mOhm range Ron --> assume 22mOhm variabilityExtra resistance in PCB is not known, but designed to be minimal

    Analysis was done in Python here to compute the maximum percent error for each current level in the fixed reference voltage mode and for a variety of current settings for the adjustable reference voltage mode. The chart below shows the results.

    There are three interesting results here:

    1. The accuracy is quite good, typically +/- 0.25% accuracy over a lot of the operational range.
    2. The accuracy is worse at higher currents - this is due primarily to uncertainty of the on resistance of the shunt FET. At lower currents, that variability is small relative to the shunt resistance (e.g. 22mOhm vs 10MOhm), but it becomes relatively meaningful at lower shunt resistance (e.g. 22mOhm vs 7.66mOhm).
    3. The accuracy diverges to be worse than -1% at several levels. These correspond to the adjustable reference mode at small DAC output voltage. The total unadjusted error (TUE) for the DAC is 0.06% FSR worst case, which is 1.5mV. In this analysis, the lowest output DAC voltage shown is 100mV, so 1.5mV becomes a substantial error and dominates the error. Note that this is the worst case, and typical TUE is 0.025% FSR, which brings the typical error down within +/-0.6%

    Overall, this analysis shows that for fixed current mode, the worst case expected accuracy based on datasheets is +/-0.3%, while the worst case expected accuracy for the adjustable reference voltage mode ranges based on the reference output voltage. If 100mV is the minimum output voltage used, the accuracy is +/-1.5%. If 500mV is the minimum output voltage used, the accuracy is +/-0.3%.

  • Testing of Adjustable Reference Voltage Mode

    Jake Wachlin12/20/2025 at 15:33 0 comments

    The second mode of operation for this device uses a precision 16-bit DAC to set the reference voltage, and the MOSFETs to set the shunt resistance. This enables a highly adjustable current supply across a huge dynamic range. Firmware and interface software was developed (and is on the open source Github repo) to allow for a command of any current. The system will chose settings that are as close as possible to that command. To demonstrate this, a few tests were performed at current levels that are not possible with the constant reference voltage mode. Results are below:

    Commanded CurrentMeasured Current with MetaShunt V2Percent Error
    10nA10nA0%
    100nA101nA1%
    1.56mA1.556mA0.3%

  • Testing of Constant Reference Voltage Mode

    Jake Wachlin12/19/2025 at 22:50 0 comments

    To evaluate the performance of this device, I started with connecting it up to a MetaShunt V2, without prior calibration of anything except the highest 2 current shunts of MetaShunt V2.

    The table below compares the expected current (from the design), compared to measurements from MetaShunt V2. The images below also show these results. Overall, the expected and measured current matches very well, all within 1% or better. Future testing will show the reliability of the current supply as a reference truth.

    Expected CurrentMeasured with MetaShunt V2% Error
    300nA302nA-0.66%
    3.30uA3.30uA0%
    30.3uA30.3uA0%
    300uA300uA0%
    3.00mA3.00mA0%
    30.0mA29.7mA1.0%
    234mA233mA0.4%
    389mA393mA-1.0%

  • How it Works

    Jake Wachlin12/19/2025 at 22:42 0 comments

    This project is fairly straightforward. The constant current supply circuit is based off of the Analog Devices AN-1530 application note for a low cost, precision constant current supply. The AD8276 Difference Amplifier and the AD8603 Op Amp are used in the current supply circuit. However, to achieve a high dynamic range, 8 different MOSFET controlled shunt resistors are used for setting the current, and the reference voltage is provided either by a fixed high 0.2% accuracy precision voltage reference or by a precision DAC (TI DAC80501). With this design then, there are two operational modes:

    1. High precision, constant reference voltage mode
    2. Precision, adjustable reference voltage mode

    The MOSFETs and DAC are controlled by an onboard STM32L4 microcontroller, with USB and power isolated so that this device can get power from and communicate with a computer over a USB-C cable, while remaining electrically isolated.

View all 5 project logs

Enjoy this project?

Share

Discussions

Does this project spark your interest?

Become a member to follow this project and never miss any updates