There has been a lot of DIY effort to make a good, cheap constant current electronic load. I must give homage to the efforts of past attempts, mostly successful, to create something useful for evaluating a power supply's capability or a battery's capacity. It's not easy.
One of the best is Dominik's: https://github.com/Dominik-Workshop/Electronic_load/tree/master
His implementation covers most of the bases and we used it as a benchmark. But it is a bit lacking in user stupidity protection. (And we wanted more.)
Another implementer worth mentioning (besides our eminent Hackaday colleagues) is John Sculley with his excellent treatise on YouTube: https://www.youtube.com/playlist?list=PLUMG8JNssPPzbr4LydbTcBrhoPlemu5Dt
But alas, Mr. Sculley descends into the mire of fixing unforeseen predicaments in a seemingly never-ending fix-it scenario. I guess a nice way of putting it is "Feature Creep".
We recommend viewing Kerry Wong's excellent YouTube videos (https://www.youtube.com/watch?v=WUPrj03UbTM) on Linear MOSFETs for an education in the reality of "Safe Area of Operation", or SOA, for the uninitiated.
A Bit of History
Paul has been working on this for a while. I entered the scene when he had a problem with oscillation that he couldn't explain while evaluating his latest prototype. Paul's blog on this subject is here: https://www.paulvdiyblogs.net/2022/08/dynamic-acdc-load-cc-cv-cw-batt.html
He was attempting to design/build a DC/AC electronic load. I have no need for an AC dynamic electronic load, which is a lot more complicated to design and build, so we settled, temporarily, on a DC version.
A lot of issues have not been entirely addressed yet. There are both hardware and software problems that remain to be addressed, but we're hopeful to overcome them with a bit of persistence.
Project Status (2024-05-02):
There are problems with the first PCBs.
- We have to put diode isolation between the ESP32 Devkit 5V supply and the Devkit USB interface to prevent large currents from overloading the 12V supply. The Devkit was supposed to have this diode on its board, but instead we found a shorting resistor.
- The voltage sensing circuitry was mis-wired, but easily repaired so we can continue evaluation.
- We didn't realize that the REF5040 required at least a 1uF capacitor on its output for stable operation...WTF?
- The two DACs had SCL and SDA swapped, but the ADC is working fine with the I2C interface.
- The pullups to the ESP32 were all taken to 5V, but should have been 3V3.
This is all normal stuff and can be easily fixed for the next pass. With changes made to fix the above errors we now are getting current from the load and have calibrated a 1A output to yield 403mV at the DUT_CURRENT signal -- less than 1% overall error. We can store that error and use it when calculating output currents. We have gone to 3A @ 30V, which is the limit of our power source. We're still in the early stages of evaluation, but things are looking good in terms of accuracy and drift.
Paul has the CC, CR and CP modes working in software with good results. The CV mode is going to be implemented in hardware.
As we proceed in our evaluation we've added a few more features: a Function Generator input for producing arbitrary current waveforms and a current monitoring output for a scope input. We eliminated the isolated external-trigger input since the FG will cover all the bases. We're getting very close to releasing version 5.1 (hopefully the last one).
It appears that the system can tolerate about 100W of continuous power if we don't isolate the NFETs from the heat sink. The NFET temperatures are around 130C with just thermal compound between the NFETs and the heat sink. This should be OK because the heat sink will be isolated within the enclosure. It is a disappointment because the electrical system can handle much more than this. When using silicon pads to isolate the NFETs the junction temperatures...
Read more »
Hi,
Looking at your schematic, I see two completely separate output sections including sense resistors. Is that setup going to load share properly?