Discover Measure Power Quadrupole, a versatile measuring device for precise monitoring of input and output voltage, current, and power for DC converters. Optimize your energy systems with this powerful tool.

Measure Power Quadrupole

Measure input and output voltage, current and power for quadrupoles.



  • Accurate Measurements: Utilizing an INA168, it measures current on the high side with a range of 0 to 30A.
  • Voltage Range: Capable of measuring voltages in the range of 0 to 60V.
  • MPP Tracking: With PWM output, it enables Maximum Power Point (MPP) tracking for solar panels and more.
  • Versatile Integration: The Measure4pole class allows you to use it as an object, facilitating MPP tracking and measuring.

How to Get Started

  1. Define your object with or without a connected OLED display.
  2. Set your calibration values and PWM settings.
  3. Track MPP and display values in real-time.

I use this measuring device to design and control step up or step down DC converters. It uses an INA168 to measure current in the high side line so that there can be a common ground for input and output. With the configuration R shunt = 10mOhm and Rout = 50kOhm for the INA168, there is a range 0…30A for the current.

The voltage range is 0…60V in the shown configuration.

The LM358 are selected for low offset voltage, it would be better to use special low offset op amps.

There is a PWM output that can be used to control the step-up converter. Using this, I could measure the MPP curve of my solar panels:


The module mpptrack_xx.py contains a class Measure4pole that allows to use the measuring device as an object. This allows MPP tracking and measuring:

# Define object with or without connected OLED:
m4p = Measure4pole(adc, pwmgen, oled = oled)
#m4p = Measure4pole(adc, pwmgen, oled = None)
m4p.set_calibration(k0, k1, k2, k3, offset0, offset1)
# Track MPP, set PWM accordingly in regular intervals
# Display values
i = 0
while True:
    if i % 10 == 0:
        if oled:
            oled.print("MPP tracking")
    ##i1, i2, v1, v2, p1, p2, eta = m4p.measure()
    i += 1

GitHub Repository