Close

Making a Solar Simulator

A project log for BenchPod

An open hardware bench tool that plugs into your CI: sensor sim, CAN, analog I/O, power control, and a Python SDK with pytest integration

edward-viaeneEdward Viaene 07/30/2026 at 22:450 Comments

Working on another demo that uses BenchPod's ADC/DAC capabilities. This time, a solar panel simulator!

Our DAC can replay voltages to simulate a solar panel, but it can't be a current source. For that, we need to hook up our DAC to an opamp and a MOSFET. To read the current back in our ADC, I added 4 x 0.01-ohm shunt resistors and an INA282 to amplify the current reading (which is output in mV). Here's a photo of the solution. On breadboard: TLV9152 (left), IRLZ44N with heatsink (middle), INA282 (right) + 4 shunts on a perfboard. INA282 OUT goes to BenchPod ADC. DAC goes to TLV9152.

Here are a few screenshots of the result. With the DAC outputting and ADC inputting, we created a control loop. We have an I-V transfer curve to let the voltage sag at a specified current, just like a real panel. The load here is a 5 Ω (10W) resistor (the golden colored rectangle in the photo above).

The same 5 Ω resistor is wired up in both screenshots; only the transfer curve changes. Under full sun (4.9 V, 1A panel), it settles at 827 mA @ 4.169 V, a sag of just 731 mV, because the load is only drawing 83% of the panel's short-circuit current. Drop to half sun (same panel, Isc halved) and the identical load now demands 93% of what's left, pushing it well over the knee: 466 mA @ 2.353 V, a 2.4 V sag (same panel, Isc halved and Voc down slightly, as it goes in reality).

That disproportion is the knee: ten more points of current draw (83% → 93% of Isc) costs the panel thirty-five points of voltage (15% → 50% sag). 

The I-V curve is what a panel can physically deliver: the light falling on it sets how much current is available (Isc in our demo). A real cell sets how much voltage survives once you start drawing that current, and the load (not the panel) decides which point on the I-V curve you end up at.

Discussions