I have Sunpower single monocrystalline solar cells for sale, see HERE .

The first version of the solar cell curve tracer
The first version of the solar cell curve tracer
Arduino curvetracer with slide projector
Arduino curvetracer with slide projector

Solar cell I-V curve

Solar cell I-V curve
Solar cell I-V curve

Matching solar cells

With this curve tracer you can measure the characteristic curves of a single solar cell. Because the reproducibility is high, the curve tracer can be used very well for matching solar cells. The generated power of the solar cell, at the MPP, can be measured accurately by averaging a large number of samples:

Solar cell MPPT measurement in mW
Solar cell MPPT measurement in mW

Slide projector illumination

With a slide projector we can do reproducible measurements independent of the varying sunlight. The light intensity is about 1/3 sun. Note that the reflection is also measured because the tested solar cell is placed at an angle of 30 degree; this is the average sun angle in the summer in the Netherlands.

Long-term reproducibility

Measuring wear and different encapsulation materials require high long-term reproducibility. By using error corrections, the long-term reproducibility of the recent version of the solar cell curve tracer is 0.2%.

Libraries needed

Unzip the Dac library and place it in the standard Arduino library subfolder \libraries\. The libraries Streaming.h and Flash.h from Mikal Hart should also be installed. Download these libraries here:

Curve tracer hardware

The curve tracer is based on an Arduino Duemilanove microcontroller board. See the photos. You can ask me for the schematic. The solar cell is loaded with a power MOSFET BUZ10 which is used as a variable resistance. The gate is driven slowly by an increasing voltage so that the drain current increases from zero to the maximum current that the solar cell delivers. During this process the voltage and current are measured and print to the screen. We use the Arduino simple 10 bit DAC to drive the BUZ10. Connect the solar cell with very tick wires because the resistance should be low, don’t use connectors. We need a 12V adaptor for the supply.


The hardware must be calibrated first, see below.

  • Unzip the Solarcell curve tracer project file. You can ask me for the recent software version.
  • With the Arduino Software run the project.
  • Set the 4 preferences in void loop():

bool printCurve = 1; // 0 = without curve, 1 = with curve
int averaging = 1;   // 1 = no averaging. With slide projector, fill in 100
int stepTime_ms = 0; // for the solar cell capacity effect
int mode = 1;        // 1 = run, 2 = U calibration, 3 = I calibration

See here for Troubleshooting. For the latest software and hardware updates you can contact me.

Create the graph in Excel

  • Start the serial monitor and wait until the values are printed to the screen.
  • When ready, copy the results from the screen with ctrl c. Select the numbers and the row "mV mA mW".
  • Paste the results in Excel with ctrl v.
  • Immediately look below the Excel table and select “use wizard”.
  • Use “finish” to exit the wizard.
  • Insert a XY graph from the first two columns.


The hardware must be calibrated first. Required instruments:

  • Laboratory power supply which can deliver a constant current of about 5 A.
  • Accurate multimeter, minimum 5 A.

The calibration procedure is included in Curvetracer.pde. Use this Excel file for automatic calculation of the values.

Illumination sources

The sun


Doing reproducible measurements with the sun is difficult and we have to wait for the summer to do tests. The measurements have to be corrected for the current sun irradiation [W/m2]. This can be done with a solar irradiance meter.

Solar cell testing light source

LS 1000
LS 1000

Slide projector

The light intensity is about 1/3 sun. This not the recent version with the long-term reproducibility of 0.2%.

Do you have any comments? Please let me know.
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.