Skip to content
OnlyProjects
B.Tech / B.E. · Electrical & ElectronicsFor educational purposes only
Code included

Solar MPPT Charge Controller Test Bench with Logged I-V Curves

Characterise PV panels and tune MPPT tracking with logged data, not guesswork

Mapped to your syllabusVTU 2022 Scheme (OBE/CBCS) · BEE685 Major Project Phase-I · Semester 6

Overview

1 min read

Solar MPPT Charge Controller Test Bench is a laboratory instrument our EEE batch built to do two jobs that commercial products keep hidden: trace a photovoltaic panel's I-V and P-V curves, and measure how well a maximum-power-point-tracking (MPPT) algorithm actually tracks that curve as sunlight, temperature and load change.

The bench is a buck-converter-based charge controller around an Arduino Uno, with two INA219 sensors measuring panel voltage, current and power on both sides of the converter. The firmware implements perturb-and-observe (P&O) and incremental-conductance (INC) MPPT, logs every sample over USB serial, and a Python script converts the log into I-V curves, P-V curves, tracking-efficiency figures and duty-cycle traces. A resistive load bank and a small battery let us sweep operating points safely.

India's rooftop-solar capacity has grown rapidly under the MNRE push, and Karnataka ranks near the top in installed capacity — yet most college labs demonstrate MPPT only in slides. The few teaching kits that exist cost tens of thousands of rupees and are black boxes. Our bench costs roughly ₹5,500 in components, and every design choice — switching frequency, inductor size, sampling rate — is documented and defendable in the viva.

The build follows the VTU 2022 scheme's toolset: the converter is simulated first in Multisim/PSpice, the firmware is written in embedded C on the Arduino Uno (a tool the VTU profile names for EEE), and the curves are fitted and compared in MATLAB/Scilab and Python.

Relevant for
Karnataka
Level
Intermediate · 14 weeks · team of 4
Common at
Visvesvaraya Technological University, Anna University, Chennai, Jawaharlal Nehru Technological University Hyderabad
Updated
Nov 2026

Syllabus alignment

VTU · 2022 Scheme (OBE/CBCS)

BEE685 · Major Project Phase-I · Semester 6 · 2 credits · CIE 100

Subjects this project applies
  • MATLAB / Scilab — system modelling and I-V curve fitting
  • LabVIEW (virtual instrumentation) — optional logging front end
  • PSpice / Multisim — buck converter design simulation
  • Arduino Uno — C firmware and data logging
  • Python — analysis scripts and plotting
How it is evaluated

Team: individual or group ≤ 4, single- or multi-disciplinary

report : presentation : Q&A = 50 : 25 : 25; same report marks for all batch-mates

Also fits: Anna University Regulation 2021, JNTUH R22, KTU 2019 Scheme.

What's in the box

11 parts · 5 free · 2 previewed · 4 unlock for ₹2,000

Problem & synopsis

5 min read

Problem statement

A solar charge controller that claims MPPT gives the user no evidence. In a college laboratory this creates two problems. First, students learn maximum power point tracking only as equations, because there is no affordable instrument that shows a panel's actual I-V curve and the controller's tracking behaviour on it. Second, even where a college owns a commercial controller, its firmware is proprietary: duty-cycle decisions, sampling rates and stability under fast irradiance changes cannot be inspected, so no measurement-based comparison of P&O versus incremental conductance is possible at teaching level.

There is a need for an open, logged, low-cost MPPT test bench — a buck converter with panel-side and load-side power sensing, selectable tracking algorithms, and a host-side analysis pipeline — that a four-member B.Tech team can build for under ₹6,000, calibrate against standard instruments, and use to produce quantitative I-V curves and tracking-efficiency results that an examiner can verify step by step.

Synopsis

Abstract

This project builds an open, instrumented test bench for solar charge controllers. It traces a PV panel's I-V and P-V characteristics under real sunlight, runs two classic MPPT algorithms (perturb-and-observe and incremental conductance) on a buck converter, and quantifies tracking efficiency, converter efficiency and transient response from logged data. The deliverables are the working bench, firmware with selectable algorithms, a Python analysis pipeline, and a calibration report that compares our measurements with a reference multimeter and states the uncertainty.

Introduction

Grid-connected rooftop solar in India is now measured in tens of gigawatts, and Karnataka consistently ranks among the top states. Charge controllers with MPPT are standard in these installations, but in a college lab the technology is usually a sealed box: students see terminals in and terminals out, never the tracking decision itself. Our bench opens that box. It is deliberately built from parts any Indian electronics market (Bengaluru's SP Road, for us) stocks: a 50 W panel, an IRF3205 buck stage, INA219 sensors, and an Arduino Uno.

Existing system and gap

  • Commercial MPPT controllers (₹3,000–₹15,000) report only LED states; you cannot see the duty-cycle trajectory or measure tracking efficiency.
  • PV-characterisation setups in industry use electronic loads and source meters that cost several lakhs.
  • Typical student demonstrations use a lamp and a small panel with no logging, so "MPPT works" is claimed but never shown with data.
  • Teaching papers describe algorithms, but few give a reproducible low-cost rig with calibration data attached.

Proposed system

  • Instrumented buck converter: 50 W panel, IRF3205 MOSFET with IR2104 gate drive, Schottky rectifier, 100 µH inductor, battery + resistor load bank as the sink.
  • Dual INA219 sensing at panel side and load side, giving simultaneous input and output power and hence converter efficiency.
  • Firmware with two MPPT algorithms selectable at run time, fixed 31 kHz PWM, and logging of V, I, P and duty every 10 ms tick.
  • Host analysis in Python and MATLAB/Scilab: I-V/P-V sweeps from near short-circuit to open-circuit, daily tracking-efficiency figures, and comparison of P&O vs INC oscillation and convergence.
  • A traceable calibration: shunt values, sensor offsets and multimeter cross-checks recorded so every result carries a stated uncertainty.

Feasibility

  • Technical: every building block is second-year EEE material (switching converters, sampling, C programming) with well-documented datasheets; simulating the power stage in Multisim before soldering removes most risk.
  • Economic: the bill of materials is about ₹5,500 (panel ₹700, Arduino ₹600, two INA219 ₹300, MOSFET/driver/inductor ₹350, load resistors ₹800, battery ₹1,200, enclosure and wiring ₹1,500, sundries) — roughly one-tenth of a commercial teaching rig.
  • Operational: the bench is benchtop-sized, powers itself from the panel, needs no mains wiring, and demonstrates on the department corridor balcony on any bright day — important because viva dates cannot be scheduled around the weather.

Objectives

  1. 01Design and simulate a 50 W buck-converter charge controller in Multisim/PSpice, selecting L and C for 31 kHz operation with current ripple under 5 per cent.
  2. 02Instrument the converter with two INA219 sensors so panel power and load power are sampled simultaneously and converter efficiency can be computed.
  3. 03Implement perturb-and-observe and incremental-conductance MPPT in embedded C on an Arduino Uno, with run-time algorithm selection and protective cut-offs.
  4. 04Trace complete I-V and P-V curves of the panel by sweeping the operating point with a stepped load bank, and fit the single-diode model in MATLAB/Scilab.
  5. 05Quantify MPPT tracking efficiency (logged energy versus available maximum) and steady-state oscillation for both algorithms.
  6. 06Build a Python logging pipeline producing CSV files, and publication-quality plots and comparison tables for the report.
  7. 07Calibrate both sensors against a reference multimeter and quote a measurement-uncertainty budget with every result.

Scope

In scope

  • One 12 V / 50 W polycrystalline panel on a tiltable mount, tested outdoors during the project weeks.
  • Buck topology only (panel to 12 V battery bus), hard-switched at 31 kHz.
  • Two MPPT algorithms: P&O and incremental conductance, in fixed-point arithmetic on the Uno.
  • Load bank of stepped power resistors plus a 12 V 7 Ah battery as a realistic sink.
  • Logging of V, I, P and duty cycle at up to 50 Hz over USB serial; CSV export.
  • Calibration against one reference 4.5-digit multimeter with a stated uncertainty budget.

Out of scope

  • Grid-tie operation, inverters and net-metering hardware.
  • Full battery-charge management (a simple current limit only; no complete BMS).
  • A calibrated pyranometer — irradiance is an LDR-based estimate, clearly labelled as indicative.
  • Partial-shading reconfiguration and distributed MPPT.
  • Cloud dashboards and IoT apps; the bench is deliberately offline for viva-day reliability.

Methodology

We follow the V-model, which mirrors the two-phase VTU structure: every design phase has a matching verification phase, which is exactly what Phase-I (BEE685) planning promises and Phase-II (BEE786) must demonstrate.

PhaseWeeksActivitiesVerification
Literature survey1–2MPPT algorithms, converter design, I-V tracing methods; shortlist topologySurvey report and problem statement (Phase-I deliverable)
Requirements3Freeze specifications: 50 W, 31 kHz, accuracy targets, logging rateReviewed requirement list
Simulation design4–5Multisim/PSpice buck model; sweep L and C; check ripple and switch stressSimulated waveforms meet spec
Power-stage build6–7Assemble converter, gate drive, sensors; thermal checksOpen-loop operation at full power
Firmware8–9PWM, INA219 driver, P&O, INC, safety cut-offs, serial protocolTests with bench supply and resistors
Integration10Mount, wiring, load bank, panel connectionDay-long soak test in sun
Calibration and experiments11–12Sensor calibration, I-V sweeps, paired algorithm runsRepeatability within stated uncertainty
Analysis and documentation13–14MATLAB/Scilab curve fits, efficiency tables, report and PPTInternal review against each objective

Test plan: (1) unit tests — sensor accuracy versus the reference multimeter at five points; (2) integration tests — converter efficiency at 25/50/75/100 per cent load; (3) functional tests — MPPT convergence after a shadow step-change; (4) endurance test — a full-day run to expose thermal drift. Every case is recorded with input, expected, actual and status in the Phase-II report, and each objective above maps to at least one test case.

Architecture & tech stack

2 diagrams · 6 technologies · 2 min read

  • Arduino Uno (C/C++ firmware)
  • Python (NumPy, Matplotlib)
  • MATLAB / Scilab (modelling and curve fitting)
  • PSpice / Multisim (buck converter simulation)
  • LabVIEW (optional logging front end)
  • INA219 current / power monitor

The bench is a three-layer instrumentation system: a power layer (panel, converter, load), a measurement-and-control layer (INA219 sensors, Arduino Uno, gate driver), and an analysis layer (Python/MATLAB on a laptop).

flowchart TD
  PV["PV panel 12 V 50 W on tiltable mount"] --> S1["Input sensor INA219 No. 1"]
  S1 --> BUCK["Buck power stage: IRF3205 MOSFET + 1N5822 diode + 100 uH inductor"]
  BUCK --> S2["Output sensor INA219 No. 2"]
  S2 --> LOAD["Sink: 12 V 7 Ah battery + stepped resistor load bank"]
  UNO["Arduino Uno firmware: P&O and INC MPPT, 31 kHz PWM, safety cut-offs"] -->|"gate pulses via IR2104"| BUCK
  S1 -->|I2C bus| UNO
  S2 -->|I2C bus| UNO
  UNO -->|"USB serial at 115200 baud"| PC["Laptop: Python logger writes CSV"]
  PC --> AN["Analysis: I-V and P-V curves, tracking efficiency, MATLAB/Scilab fits"]

Power layer. The panel feeds a nonsynchronous buck stage. The IRF3205 is driven by an IR2104 so the high-side switch gets a proper gate swing; the Schottky diode and 100 µH inductor were chosen from simulation for 31 kHz operation with under 5 per cent current ripple. The load bank (parallel power resistors, 0.5–5 Ω steps) drags the operating point across the I-V curve; the battery provides a realistic near-constant-voltage sink for MPPT runs.

Measurement and control layer. Two INA219 breakout boards sit at the input and the output. They report bus voltage, shunt current and computed power over I2C — exactly the data needed for converter efficiency. The Uno runs a fixed 10 ms control tick: read sensors, run the selected MPPT algorithm, update the PWM duty, stream one CSV line. Safety cut-offs force the PWM to zero on over-current, bus over-voltage, or panel under-voltage at dusk.

Analysis layer. The Python script timestamps, filters and stores each run, then produces the traced I-V/P-V curves with the single-diode model fitted in MATLAB/Scilab, tracking-efficiency figures per algorithm, and duty-cycle traces that show P&O's characteristic three-point oscillation against INC's steadier behaviour near the MPP.

flowchart LR
  A["Start sweep"] --> B["Set duty toward heavy load"]
  B --> C["Step load / duty upward"]
  C --> D["Log V, I, P after 200 ms settle"]
  D --> E{"Near open-circuit?"}
  E -->|No| C
  E -->|Yes| F["Fit single-diode model and save curve"]

The second diagram is the I-V tracing routine — the same sweep the viva demo runs live.

Modules

6 modules

  1. Module 01

    Power Stage (Member A)

    Designs and builds the buck converter: component selection from the Multisim sweeps, sourcing the MOSFET, gate driver, diode and inductor from SP Road, soldering on perfboard, thermal checks of diode and inductor at full load, and the stepped resistor load bank with a rotary selector.

  2. Module 02

    Instrumentation & Calibration (Member B)

    Mounts the two INA219 boards and wires the I2C bus, then owns the calibration procedure: five-point comparison against the reference multimeter, shunt-value verification, offset nulling, and the uncertainty table that every measured result in the report quotes.

  3. Module 03

    Firmware & MPPT (Member C)

    Writes the Arduino embedded C: 31 kHz PWM setup, INA219 driver, the 10 ms control loop, perturb-and-observe and incremental-conductance implementations in fixed-point arithmetic, run-time algorithm switch, and latching protective cut-offs with a fault indicator.

  4. Module 04

    Host Logging & Analysis (Member D)

    Builds the Python serial logger writing timestamped CSV runs, the MATLAB/Scilab single-diode curve fitting, and the comparison outputs: I-V and P-V plots, tracking-efficiency tables, converter-efficiency curves, and the P&O versus INC duty-cycle trace figures.

  5. Module 05

    Test Bench Fixture & Safety (shared)

    Panel mount with tilt adjustment, fused battery leads, insulated enclosure with ventilation, clear labelling, and the safe-work checklist for outdoor testing: no mains anywhere, fuse on every battery positive, and a two-person rule for moving the panel.

  6. Module 06

    Documentation & Viva Pack (shared)

    Phase-I survey and problem statement, Phase-II report chapters, test-case tables, the BOM with indicative prices, and a five-minute demo script that traces a live I-V curve during the viva without touching a keyboard.

Slides

12 slides · titles free · bullets, notes and the .pptx unlock

  1. Slide 1

    Solar MPPT Charge Controller Test Bench

  2. Slide 2

    Motivation

  3. Slide 3

    Problem Statement

  4. Slide 4

    Objectives

  5. Slide 5

    System Architecture

  6. Slide 6

    Design Highlights

  7. Slide 7

    I-V Curve Tracing

  8. Slide 8

    MPPT Algorithms Compared

  9. Slide 9

    Calibration & Uncertainty

  10. Slide 10

    Results

  11. Slide 11

    VTU Phase-wise Mapping

  12. Slide 12

    Conclusion & Future Scope

Bullets, speaker notes and the .pptx · ₹2,000

The titles above are the real outline. The rest is what you present from.

Unlock for ₹2,000

Viva questions & answers

3 of 15 answered free · 12 unlock

Read each answer, close it, and say it in your own words. Your viva will ask. Now you'll know.

  1. 01Concept

    What exactly is maximum power point tracking and why does a panel need it?

    A PV panel's output power depends on both irradiance and operating voltage, and the current-voltage curve has a single knee where power peaks — the maximum power point. Its position moves with sunlight and temperature, so a converter must continuously adjust the operating point. MPPT is the control loop that does this by varying the converter duty cycle so the panel keeps delivering near-maximum power instead of settling at a load-determined point.

  2. 02Concept

    Explain perturb-and-observe versus incremental conductance.

    Perturb-and-observe changes the duty cycle a fixed step, observes whether power rose or fell, and reverses direction on a fall — simple, but it oscillates around the maximum power point and loses a little energy. Incremental conductance compares instantaneous conductance I/V with the negative incremental conductance dI/dV; at the MPP they are equal, so it can hold still and reacts better when irradiance is changing. Our logged duty traces show exactly this behavioural difference.

  3. 03Concept

    Why did you choose a buck converter and not boost or buck-boost?

    Our 12 V panel's maximum-power-point voltage sits around 17-18 V in cool bright sun, and our sink is a 12 V battery bus, so we mostly need to step down — buck is the simplest, cheapest and most efficient topology for that ratio. A boost stage would suit panels whose MPP lies below the bus; we listed it as future scope so it can be compared on the same sensing hardware.

+12 more questions, with answers

Try the free ones out loud first. Your examiner will not accept “it's in the PPT”.

Source code & how to run

9 steps · complete source code · unlocks with the project

Unlocks with the project · ₹2,000

9 steps · source code zip

Prerequisites, install, seed data and tests, written for demo day. Plus the complete source.

Unlock for ₹2,000

READMEFIRST

262 words · unlocks with the project

What to change before it goes anywhere near a submission. Skipping it is how the demo fails live.

Unlocks with the project · ₹2,000

262 words · ~1 min read

The checklist of things to rename, re-seed and re-think so the project reads as yours.

Unlock for ₹2,000

Instructions

351 words · unlocks with the project

How to study it, adapt it and walk your examiner through it, step by step.

Unlocks with the project · ₹2,000

351 words · ~2 min read

Report structure, formatting rules and the submission checklist your department will grade.

Unlock for ₹2,000

References

7 sources

  1. Texas Instruments, INA219 Zero-Drift, Bidirectional Current/Power Monitor with I2C Interface — Datasheet
  2. Arduino UNO R3 — Official Documentation and Pinout
  3. IS 14286:2010 / IEC 61215 — Crystalline Silicon Terrestrial Photovoltaic (PV) Modules: Design Qualification and Type Approval (Bureau of Indian Standards)
  4. Ministry of New and Renewable Energy (MNRE), Government of India — Solar Programmes and Schemes
  5. CENELEC EN 50530:2010 — Overall Efficiency of Grid-Connected Photovoltaic Inverters (defines MPPT tracking-efficiency measurement)
  6. Muhammad H. Rashid, Power Electronics: Circuits, Devices and Applications, 4th ed., Pearson
  7. Ned Mohan, Tore M. Undeland and William P. Robbins, Power Electronics: Converters, Applications and Design, 3rd ed., Wiley

Cite this bundle

OnlyProjects. (2026). Solar MPPT Charge Controller Test Bench with Logged I-V Curves: B.Tech / B.E. Electrical & Electronics project bundle [Educational resource]. https://onlyprojects.online/projects/btech-eee-solar-mppt-charge-controller-iv-curve-test-bench

Future scope

1 min read

  • Add a boost converter stage so the bench can track panels whose MPP sits below the battery bus, and compare topologies on the same instrumentation.
  • Replace the LDR estimate with a calibrated silicon pyranometer for proper performance-ratio calculations comparable with published figures.
  • Port the firmware to an ESP32 for Wi-Fi dashboards while keeping the offline CSV path as the viva-day fallback.
  • Build a shading jig and run partial-shading experiments comparing global MPPT techniques on the traced curves.
  • Log panel back-surface temperature with a DS18B20 and derive the temperature coefficient from our own data.
  • Turn the design into a repeatable lab experiment: a PCB, a written 3-hour procedure, and a batch of kits for the department.

Keep browsing

Same degree, same syllabus slot, different idea. Pick the one your guide will actually approve.

B.Tech / B.E.Code included

Aerospace / Aeronautical

Low-Speed Open-Circuit Wind Tunnel with Force Balance for Aerofoil Lift-Drag Measurement

Build a subsonic test tunnel on a student budget, then trace lift and drag on a 3D-printed NACA 0012 against theory

  • C / Arduino Uno (industry-standard extra) — HX711 load-cell and serial logging firmware
  • Python (NumPy, Matplotlib) — calibration, force coefficients and plots
  • MATLAB / Scilab — thin-airfoil theory overlay and regression
  • +4

intermediate14 wk4 students