MightyWatt Revision 3: Brand New and Seriously Improved

I have developed a new version of MightyWatt, the R3! It looks almost the same on the outside but is very different on the inside. It addresses shortcomings of the revision 2 and adds some new functions. But first, what is MightyWatt R3 (skip to Hardware changes if you already know…):

MightyWatt R3 on an Arduino Uno board

MightyWatt R3 is a programmable electronic load. That means you can use it for testing batteries, power supplies, fuel cells, solar cells and other sources of electrical power. You can also make a programmable power supply from a fixed-voltage power supply and MightyWatt R3 and use it for example as an intelligent battery charger.

MightyWatt R3 is made as an Arduino shield. Simply put it on an Arduino, upload the control sketch, open Windows control program and you are ready to go. In its heart, MightyWatt R3 has a special FET designed for linear operation that acts as a programmable resistor. It is controlled by an analog feedback loop that is able to keep either constant current or constant voltage (constant power and resistance is kept by a software loop). The current or voltage is set using a DAC, the actual voltage and current is read by an ADC so MightyWatt R3 has an integrated ammeter and voltmeter, both of which have two ranges with very fast autoranging. For the voltage measurement to be as precise as possible, MightyWatt R3 offers 4-wire (Kelvin) measurement where voltage is sensed by a dedicated pair of connections. This removes the effect of cable resistance from the measured value. It is of course possible to measure the voltage at the input terminals too (2-wire measurement). The power is dissipated in a force-cooled heatsink that is able to, with its fan, dissipate up to 70 Watts continuously. Current range is up to 24A and voltage up to 30V. MightyWatt R3 is 100% open source – hardware, firmware, software – so you can make your own one. Or buy a ready-to-use unit on Tindie.

Hardware changes in Revision 3


Schematic of MightyWatt R3

Dedicated ADC

While the revision 2 used Arduino's internal ADC, the new version has a dedicated delta-sigma ADC. Either ADS1115 (16-bit) or ADS1015 (12-bit). This means that the measurements will be more precise, less noisy and the calibration will hold for a MightyWatt R3 as a unit, regardless of the control board (Arduino) used.
Both supported ADCs have internal programmable gain amplifier so their resolution is effectively 4 bits larger. However, since they use one half of their range (negative values are not used), one bit is unused so in the end they behave almost like 19-bit and 15-bit devices.
To complement the new ADCs, the DAC can also be a 16-bit AD5693RBRMZ or a 12-bit AD5691RBRMZ (same as in revision 2).

Two current ranges

Instead of the one current range of its predecessor, MightyWatt R3 has two, separated by a factor of 8. Thus, a 24A version will also have a 3A hardware range. This will enhance the resolution and precision making MightyWatt R3 very usable even at low currents. The current sense resistor will, apart from Vishay WSL3637, now support also Ohmite LVK24 and LVK12 footprints, suitable especially for low currents.

Improved linearity towards zero

Analog voltage and current measurement have an intentional offset so the rail-to-rail operational amplifiers will remain in their linear range. Since both voltage and current are measured differentially against that offset, the measurement is even more precise than the single-ended measurement in revision 2 and the offset is of course completely eliminated from the result.

Better op-amps

The standard op-amps now include: OPA365 for the voltmeter and OPA197 as the FET gate driver. This is a definite improvement over the TLC2272/LMC6482 op-amp used in revision 2 both in terms of linearity and stability.

More stable gate driving circuit

More stabilization was added to the gate driver so the load is now very stable even with power supplies that have their own feedback for current and/or voltage. The compensation network is different for constant current and constant voltage mode and is automatically selected by the load.

More input protection

There is never too much protection so there are three new transient voltage suppressors – two on the voltmeter and one to protect the gate of the transistor.

Higher input impedance for the voltmeter

The standard resistors on the input are 1MΩ, three times the value of the revision 2 resistors. The burden on the device under test will be lower and the measurement more accurate, especially at low currents.

Switchable fan

The fan can be turned off when the load is small. MightyWatt R3 can dissipate about 10 W without the fan running so for low-power measurements, the fan can be turned off. The firmware will manage automatic turn on when the temperature or power dissipation increases above set threshold.


LED is connected to PWM output from Arduino so its brightness can be controlled. Since it has a dedicated transistor now, it has an increased maximum brightness.


Not only the hardware has changed. The firmware is now structured to several modules, each performing a dedicated task. It is more readable but also more complex because it has more functions. Some of the highlights:
  • The communication now uses CRC checking of data integrity.
  • The ADC control module performs filtering using a triangular weighted moving average filter to provide a smoother yet quick response.
  • The main loop makes about 3000 turns per second on Arduino Uno (ATmega328P) and 150 complete measurements (V + I + temperature) per second.
  • The software modes (constant power, constant resistance, constant software-controlled voltage and maximum power point tracker) have been reworked to settle faster.
  • Firmware will allow short-term overload on voltage, current and power so quick transients will not abort the measurement…
  • …but the protection logic will disconnect MightyWatt R3 within 10 ms from the time the power exceeded DC safe operating area of the transistor.
  • Calibration sketch has been reworked too and is more automated and informative.

Windows application

And the changes also reflect in the Windows control application. Although most of the improvements lead to both a better accuracy and precision, something the control application has nothing to do with, user can now play with LED and fan rules and enable/disable the smoothing filter.

The LED and fan rules work like this: LED will light depending on some pre-defined conditions which can be combined. For example, it can light when the current is over 10% of the range or the temperature is above 50 °C.

The fan can automatically turn off with two settings that differ by what they will allow – either put emphasis on cooling (stricter rules) or emphasis on fan noise, meaning turning the fan off as often as possible (relaxed rules). The logic will still turn the fan on if the power or temperature is too high. It can, of course, be always turned on, which is the default setting.

Windows application now supports graphs using gnuplot and statistics so you can see how your measurement is progressing in real-time.

So all and all, improvements everywhere. It has still the same principle, but it just got way better! Get your MightyWatt R3 on Tindie or make your own one. MightyWatt R3 remains open-source. That hasn't changed and never will.


  1. This is a great example of why using an Arduino as a control platform is such a good idea. It turns what could have been just a simple variable load into something so much more useful.

  2. I have the Mighty Watt load attached to an Arduino Mega 2560 R3. When I run the Windows .exe control program, it shuts down after a minute. The Mighty Watt is plugged into Digital pins 3, 4, 5, 8, 9, 10, 11, 12, 13. Also, serial pins SCL, SDA. I am powering the Arduino from USB.

    1. Hi Curtis, can we discuss this over email? Please, send me a message to jpolonsky@gmail.com

      If you have Uno or Zero lying around, can you try with that? If not, can you try on a different PC? Does the program show any error message?

  3. Thank you so much for sharing this great blog.Very inspiring and helpful too.Hope you continue to share more of your ideas.I will definitely love to read. hu666

  4. That blog was amazing, I am impressed with your thoughts. I got the best information from this site, It’s very useful to all and us. Thanks for sharing this post. Electronic Components