Advanced Arduino-based DC Electronic Load


Introduction: Advanced Arduino-based DC Electronic Load

About: Projects with, for, and about 18650 li-ion cells.

This project is being sponsored by Design your projects using EasyEda online software, up load your existing Gerber (RS274X) files, and then order your parts from LCSC and have the entire project shipped directly to your door.

I was able to convert the KiCad files directly to JLCPCB gerber files and order these boards. I did not have to alter them in any way. I use the website to track the status of board while it is being built, and they made it to my door within 6 days after I sent the order. Right now they are offering free shipping for ALL PCB's and the PCB's are just $2 each!

Intro: Watch this series on YouTube at "Scullcom Hobby Electronics" so you can get a complete understanding about the design and software. Download the .zip_file from Video 7 of the series.

I am recreating and modifying the "Scullcom Hobby Electronic DC Load". Mr. Louis originally designed all the hardware layout and software related to this project. Please ensure he gets due credit if you replicate this design.

Step 1: Checkout "The Combat Engineer" on YouTube for Specific Details About the PCB Ordering Process.

Watch this video, which is video 1 of the series, and learn how to order your custom made PCB's. You can get great deals on all your components from and have the boards and all the parts shipped together. Once they arrive inspect them and begin soldering the project.

Remember that the silk-screen side is the top and you have to push the legs of the parts through the top and solder them on the bottom side. If your technique is good, a small bit of solder will flow through to the top side and soak in around the base of the part. All of the IC's (DAC, ADC, VREF, etc) go on the bottom side of the board as well. Make sure you don't over heat the sensitive parts while the tips of your soldering iron. You can use the "reflow" technique on the small SMD chips as well. Keep the schematic on hand while building the unit and I found the overlay and layout extremely helpful as well. Take your time and make sure all the resistors end up in -the correct holes. Once you double check that everything is in the right place, use small side cutters to clip off the excess leads on the parts.

Hint: you can use the legs of the resistors to create the jumper links for the signal traces. Since all the resistors are at east 0.5W, they carry the signal just fine.

Step 2: Calibration

The "SENSE" line is used to read the voltage at the load, while the load is under test. It is also responsible for the voltage reading you see on the LCD. You will need to calibrate the "SENSE" line with the load "on" and "off" at various voltages to ensure the greatest accuracy. ( the ADC has 16-bit resolution so you get a very accurate 100mV readout- you can alter the readout in the software, if needed).

The output from the DAC can be adjusted and sets the drive voltage for the Gate of the Mosfets. In the video, you will see I bypassed the 0.500V, voltage divided and I am able to send all 4.096V from the VREF to the Gate of the Mosfets. In theory would allow up to 40A current to flow through the load.* You can fine tune the gate drive voltage using the 200Ohm 25-turn potentiometer (RV4).

RV3 sets the current you see on the LCD and the no-load current draw of the unit. You will need to adjust the potentiometer so that the readout is correct on the LCD, while maintaining as little as possible "OFF" current draw on the load. What do this mean you ask? Well, the is a small flaw this the feedback loop control. When you connect a load to the load terminals of the unit, a small "leakage current" will seep through from your device (or battery) under test and into the unit. You can trim this down to 0.000 with the potnentiometer, but I have found that if you set it to 0.000 than the LCD readings are not as accurate as if you let 0.050 sneak through. Its a small "flaw" in the unit and it is being addressed.

*Note: You will need to adjust the software if you attempt to bypass or alter the voltage-divider and YOU DO SO AT YOUR OWN RISK. Unless you have extensive experience with electronics, leave the unit set to the 4A like the original version.

Step 3: Cooling

Make sure you position the fan so that you get maximum airflow over the Mosfets and the heat sink*. I am going to use three (3) fans in total. Two for the Mosfet/heat sink and one for the LM7805 voltage regulator. The 7805 provides all the power for the digital circuitry and you will find it gets quiet warm. If you plan to put this in a case make sure the case is large enough to allow adequate air flow over the Fets and still circulates through the rest of the space. Do not allow the fan to blow hot air directly over the capacitors either, as this will stress them and shorten their life expectancy.

*Note:I have not put the heat sink on this project yet (at the time of publishing) but I WILL and YOU NEED ONE! Once I decide on a case ( I am going to 3D print a custom case) I will cut the heat sinks to size and install them.

Step 4: The Software

This project is based on the Arduino Nano and Arduino IDE. Mr. Louis wrote this in a 'modular' manner which allows the end user to customize it for his/her needs.(*1) Since we are using a 4.096V voltage reference and a 12-bit DAC, the MCP4725A, we can adjust the output of the DAC to exactly 1mV per step(*2) and accurately control the Gate drive voltage to the Mosfets (which controls the current through the load). The 16-bit MCP3426A ADC, is also driven from the VREF so we can easily get 0.000V resolution for the loads voltage readings.The code, as-is, from the .zip will let you test loads up to 50W or 4A, whichever is greater, in either 'constant-current', 'constant power', or 'constant resistance' modes. The unit also has a built-in battery test mode that can apply a 1A discharge current for all the major battery chemistry's. When its done it will display the total capacity of each cell tested. The unit also has transient mode and other great features just check out the .INO_file for full details.

The firmware is chalk full of safety features as well. An analog temp sensors allows the fan speed control and an auto-cutoff if the maximum temperature is exceeded. The battery mode has preset (adjustable) low voltage cut offs for each chemistry and the entire unit will shut down if the maximum power rating is exceed.

(*1) which I am doing. I will post more videos and add to this project as it progresses.

(*2) [(12-bit DAC = 4096 steps) / ( 4.096Vref)] = 1mV. Since nothing is perfect, there is a trim pot to account for noise and other interference's.

Step 5: What's Next

I am modifying this project, both hardware and software, with a goal of making it stable at 300W/ 10A. This is just the beginning of what will surely become an excellent DIY Battery Tester/ General Purpose DC Load. A comparable unit from a commercial vendor would cost you hundreds, if not thousands, of dollars so if you are serious about testing you DIY 18650 Powerwalls for maximum safety and performance, I highly encourage you to build this for yourself.

Stay tuned for more updates:

1) Custom 3D printed case using OnShape

2) 3.5" TFT LCD display

3) Increased Power and perfromace

Feel free to ask any questions you may have about this proejct. If I have left out anything significant, I will try to get back and edit it in. I am putting together a couple of " partially build kits" including the PCB, resistors, JST-connectors, banana jacks, diodes, capacitors, programmed Arduino, header pins, rotary encoder, latching power switch, push button,etc and will make them available soon. ( I am not going to make "complete kits" due to the cost of the various IC like the DAC/ADC/Mosfets/etc, but you will be able to have about 80% of the parts ready to go, in one kit, with professional PCB).

Thank you and Enjoy.



    • Clocks Contest

      Clocks Contest
    • Creative Misuse Contest

      Creative Misuse Contest
    • Water Contest

      Water Contest



    Question 3 months ago

    Hello, have you been able to make some improvements? Like tft display or increasing of capacity? I am going to build this load but want to increase capacity first of all and after connect a tft display