Design & Build an Electronic DC Load

In this project we will design an build an Electronic DC Load which is capable of Constant Current, Constant Power and Constant Resistance. The design will use a rotary encoder for input entry and a 20×4 LCD display as the user interface. In Part 1 of this project we will discuss the basic design and then build and test the initial prototype.

Below are links for the prototype software plus a zip file with the schematic, PCB artwork and component layout:



Above shows the PCB wired for testing with heatsink and fan added.


Underside of PCB showing the locations of the 3 IC’s.


Close up of 20×4 LCD showing setting in Constant Current Mode.


In part 2 of this project we will make some changes in the way the LCD displays the information. The set current and set power levels are now set in Amps and Watts to three decimal places. Safety limits have also been added to limit maximum current setting and maximum power. After start up the unit goes in to constant current mode. A battery capacity function has also been added to test the life of batteries in mAh. The power mosfet has now been changed to a BUK956R1-100E (from NXP) to improve power handling. Finally software has been upgraded to Version 2.0.

Below are links to the downloads for Part 2 of this project:

Below is the new LCD layout with the heatsink temperature now at the top left of the display.


When the power limit is exceeded the Load switches OFF and the display informs “Exceeded Power Limit”.


To accommodate the new feature of Battery Capacity Testing we have now added a Real Time Clock (RTC) which also uses the I2C bus to interface with the Arduino.


Below is the Safe Operating Area graph, taken from the datasheet, of the Power Mosfet. This illustrates the ability of the Mosfet to handle 3A at 30 volt. However, this is at 25°C and in reality the power handling will be lower than that as the Mosfet heats up. At a later stage we will consider adding Mosfets in parallel to overcome this.



In Part 3 of this project we will make a number of improvements and additions. These will include a keypad, improved accuracy, fault protection and enhanced battery capacity discharge test mode. A 4.096 volt reference had been added to the DAC improving accuracy. A battery capacity testing menu has been added.

Below are links to download the latest version of software (version 8) and the updated schematic of the whole project, which now includes Real Time Clock and Voltage Reference Modules:
Please not that the new software now uses a keypad library – ensure that you have the latest version of this library and read the information on the following web page:
Direct link for the keypad.h library is below:


In Part 4 of this project on the Electronic DC Load we are going to add a remote voltage sense circuit, increase the power capacity by adding additional power mosfets and build the completed unit into a metal project case. We will also upgrade the software to allow for input entry via the keypad as well as the rotary encoder.

Below are download links to the latest version of software.
Also a zip file with the updated schematic for the main PCB, schematic and PCB artwork for the Remote Voltage Sense , Parts List, details of alternative power mosfets, wiring diagram and any notes:
To increase the Power Cut-Off Level simply change the value in the code below in software:
float PowerCutOff = 50;
Suggest changing 50 to 99

Below is the Remote Sense Circuit which uses a OPA277 OP Amp as a difference amplifier. The negative 5 volt supply for the OP Amp is generated by the a ICL7660 voltage converter IC.


The 20K preset between pins 1 & 8 of the OP Amp is adjusted for a NULL sense output when the sense input terminals are shorted together.


In part 5 of this project we will improve the power Mosfet’s current handling capability. Also a Transient Mode will be added providing a pulse option for the DC Load. The software will be updated providing extra features such as; user setting of battery cut-off voltage for battery capacity mode and user setup of safety limits.

Below are links for downloading the latest software and updated schematic diagram:
The Remote Voltage Sense circuit remains as show in Part 4 of this project.


Above is the revised circuit for paralleling the Power Mosfets. Additional 0.1 ohm resistors have been added in the source return of each of the Mosfets so as to reduce the effect of the negative temperature coefficient of the gate/source threshold voltage.

Part 6

In Part 6 of this project we are going to make modifications to the Power Mosfet drive circuit to improve the ability to handle higher current/power levels whilst protecting the Mosfets from over heating and possibly going in to thermal runaway. We are also going to design, build and test the trigger input circuit. In addition to this I have updated the software to Version 25.
Below are links to download the latest software. Also there are two zip files providing the PCB artwork, Schematic and Parts List for both the Mosfet Drive Circuit and the Trigger Input Circuit.

Part 7

In part 7 of this project we will have a look at a number of updates and improvements. We will also use a new single sided PCB with all the components on one board. The Arduino software has also been updated to version 27.
Below are download links to two zip files which provide all the details. One for the updates, schematic, PCB artwork and parts list etc. and another with all the KiCad files. Also a link for the latest software:

17 thoughts to “Design & Build an Electronic DC Load”

  1. Great projects and thanks for your work!
    I cannot compile the Electronic DC Load software. Where can I obtain the LCD.h library ?

  2. I have watched almost all of your videos. Can I suggest an upcoming project? I would like you to design/build a >=200MHz Frequency Counter that can also measure down in the Tens of Hz range. Perhaps it would be useful to have the Frequency Standard/Reference be used to test or calibrate the Frequency Counter…?

  3. Hello,
    much very nice project, brillant video from start to end! Personally prepare on Milliohm-Meter + this Electronic DC Load. Could it be speed Frequency Counter with 10 ÷ 12-digit. 8-digit them on flabby is much, only choose… Great job!
    I am sorry for my English.
    Regards, Roman Klíma (Czech Rep.)

  4. Hey Louis
    Is there any chance you will publish the PCB CAD files?
    P.S. I have made the Millivolt metre using the OSHPARK PCB and added a soft power on.
    Keep up the great work.

    1. Hi Nick,
      As the project is not fully finalised the PCB keeps changing I have not completed a new PCB yet.
      However, one of my followers Rob Bruno has already designed a new PCB using my design (up to Part 5) but we have not tested it yet. It should be OK and uses surface mount components. If you are interested it is available from:
      The PCB CAD file I think is also available to download from OSHPARK.
      You can also download the circuit from the link below:
      We will be working on a final PCB design which will incorporate all the changes/additions.

  5. Hey Louis,
    This is a nice project, and explained up into all details! 👍

    I have a question that i did not want to ask on your youtube channel,
    because it is a bit out of topic :

    Do you think i could use such a DC electronic load with AC low voltages,
    by connecting it through a bridge rectifier ?
    It would then emulate an AC resistive load… ( i suppose ? )
    What could go wrong ?

    Best regards and thank you for all your nice projects!

  6. Hello Louis,
    Thank you very much for your video’s on youtube, as I said on one of them they are Brilliant and the best I ever scene. I have learned so much from you. As soon as I found out you had a website, i had to come here. I had a good feeling from the first time I watched your videos, I knew, you would have had to be a teacher at school as well, especially the way you were waving the stick at the board… lol. No really its because of how you conduct yourself with the expertise of explaining the theories and a perfect tone of voice and temperament. I have to say the tone of voice is very important for teaching, because if it is irritating it is very hard to concentrate after a while. Not to put him down, for example Dave Jones is excellent with his videos and is very talented, but I cannot listen for too long because his voice has too much accent up and down tones and so on.
    So I thank you for your work, I think you are a great teacher and kind hearted, I wish I would have had teachers like you!
    Now regarding this DC load , it looks like that for now it’s still open to new changes, what do you think about the idea of making the system outputting the data values to a pc and then may be with an already made freeware software it can be data logged to give a record of the load test?

    Also I noticed that you made a function to zero the figures at the start by pressing and holding two buttons.
    I am just going to ask here so excuse my ignorance, why not have this to zero by its self in the program after turn on and a set delay or every time the load is turned off ? In the past I have made some projects to do this.

    Kind Regards,

    1. I have think like you.
      Now I’m working about electronics and electrical it very hard to understanding for me.
      But I must make Electronic load for ending project.Then in around 2 months ago,I had see this project on youtube but I not good for English I’m Thai and I follows the video.

      For now I think I can do that to 30% I had installed for test on breadbroad.
      But I had something different to used.
      My devices are different from Scullcom project list.
      – x2 MCP3425 for ADC devices (now it’s make me a problem because it have the same registor).
      – IRF2807 for MOSFET.
      – 1ohm tolerrent 5% 7watt for current sence.
      – another resistor is tolerrent 5% 1/4watt.
      – x2 LM358 for op-amp.
      – BC337 for NPN to fan 12v.
      please if you have a time I need to known more Louis

      Thank you & Best regard

    2. Hi Louis,

      When I wrote the above comments I was just writing my true honesty with out thinking too much on how they may effect another person. So If you think some of my comments about another individual may be offensive as I realized they may be taken that way even though none are intentional. You may remove my letter or if you allow me I would like to comment out that part.

      kind regards,

  7. Very good projects: thanks.

    Perhaps you could consider adding a master list somewhere of all your projects, or even just the main ones.
    Adding the latest links to PCB, software etc on that.
    As well as your Youtube video links.
    And even any related links from your followers.
    And a rough summary of the overall specifications of the project.

    They don’t need to be accurate during the project, but it is nice to get a rough idea of what a given project can do without going thru the videos in detail.

    I tend to get a bit lost in following the various Youtube projects because they do change a bit over time as you modify things.

    And an idea for a video might be for you to describe some useful tools that a apprentice electronics hobbyist should consider having, to be a generalist.

    Thanks again.

  8. i love your projects thank you so much i have learned so much from them! I would ask if you ever find the time if you could maybe do a video going over the software from top to bottom, similar to how you did with millivolt meter part 2, i have watched that video a hundred times and it makes more and more sense each time! although i would like to see explained a program which controlls a DAC because i cant for the life of me figure out how to use my DACs i have for this load, its a ltc1448 dual channel spi/ 3 wires but to control it it doesnt have any control bits etc, just send a 24 bit word, 24 clock pulses etc, 12 bits go to dac a and 12 to dac b, it makes no sense to me how to ! but just having a explanation of your software would help so much! thanks so much for your time and keep making great videos!

  9. Hi Louis,
    I was planning from some time to make an electronic load, and collected the documentation of several projects in order to not reinvent the wheel. One of my goals was to be able to control it from a PC in adition to be a stand alone unit, so the instrument should have a microcontroller, an Arduino if possible, with the software sources available.
    Now that I have found your project, I will built it since it seems to me that you have addressed all issues in the analog part so I could center my efforts in adding some capabilities to the Arduino program.
    Since I have designed and built several PC controlled instruments that also uses Arduinos at the other end, I already have most of the building blocks (protocols, virtual instrument layouts, logging, graphics, calibration, etc.) for implementing added functionality in an easy way.
    I found a guy in Germany who sells PCBs for this proyect and I have bought his last unit. Now I have to order the materials and when the unit is built I’ll begin to add things to the Arduino code. I will keep you informed of the progress.
    Thank you for making your projects available.

Leave a Reply

Your email address will not be published. Required fields are marked *