Skip to content

Maximum Power Point Tracker developed by the Diamond Consortium

License

Notifications You must be signed in to change notification settings

H2020DiamondEU/Octoboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DOI

Maximum Power Point Tracker for Research-Level Solar Cells

Overview

This repository documents the design, implementation, and operation of a massively parallel, low-cost Maximum Power Point Tracker (MPPT) for aging and degradation studies of perovskite solar cells. The system integrates custom-designed PCBs and software for efficient tracking and data logging.

Features

  • Hardware:

    Octoboards (Custom-designed PCBs) for Source Measure Unit (SMU) functions

    • 8 channels per board
    • Modular and scalable design
    • Support for multiple boards via I2C addressing

    Measurement Chuck

    • Allows up to 10 substrates (40 solar cells on a "University of Marburg" cell layout) to be aged in a nitrogen atmosphere.
    • Compact design optimized to fit several chucks under standard solar simulators.
    • Easy Sample Replacement: Single chucks within the setup can be exchanged during ongoing measurements without breaking the nitrogen atmosphere or interrupting the other measurements within the same sun simulator.
  • Software:

    Python-based control system

    • Efficient MPP tracking algorithm
    • Real-time data logging to CSV
    • Multi-board management
  • Integration:

    Full Raspberry Pi compatibility for control and data acquisition

Repository Structure

├── docs/
│   ├── images/
│   │   ├── EU_logo.png
│   │   ├── EU_logo_funding.png
│   │   ├── diamond_header.png
│   │   ├── octoboard.png
│   │   └── system.png
│   └── D5.2_100_ch_MPP_tracker.pdf
├── hardware/
│   ├── Measurement Chuck Housing CAD Design/
│   │   ├── Assembly.iam 
│   │   ├── Assembly.ipj 
│   │   ├── Bauteil4.ipt 
│   │   ├── Bauteil5.ipt
│   │   ├── Bauteil6.ipt
│   │   ├── chuck_v1.ipt
│   │   ├── DIN_EN_ISO_2338-3_h8x16.ipt 
│   │   ├── DIN_EN_ISO_4762-M2x3.ipt 
│   │   ├── DIN_EN_ISO_4762-M3x5.ipt 
│   │   ├── DIN_EN_ISO_4762-M3x10.ipt 
│   │   ├── DIN_EN_ISO_4762-M3x20.ipt 
│   │   ├── DIN_EN_ISO_7046-2_Z-M2.5x10-8.8-Z1.ipt 
│   │   ├── Glasscheibe.ipt 
│   │   ├── Glassubstrat_25x25x2.2.ipt 
│   │   └── Maske.ipt
│   ├── Measurement Chuck PCB Design/
│   │   ├── SubSheet.kicad_sch
│   │   ├── BOM.csv
│   │   ├── chuck_v1.dsn
│   │   ├── chuck_v1.kicad_pcb
│   │   ├── chuck_v1.kicad_prl
│   │   ├── chuck_v1.kicad_pro
│   │   ├── chuck_v1.kicad_sch
│   │   ├── CPL.csv
│   │   └── gerber.zip
│   ├── Octoboard PCB Design/
│   │   ├── DAC.kicad_sch
│   │   ├── octoboard.kicad_pcb
│   │   ├── octoboard.kicad_prl
│   │   ├── octoboard.kicad_pro
│   │   └── octoboard.kicad_sch
├── software/
│   ├── hardware/
│   │   ├── __init__.py
│   │   ├── channel.py
│   │   ├── constants.py
│   │   ├── i2c.py
│   │   ├── manager.py
│   │   ├── oboard.py
│   │   └── sdac.py
│   ├── tests/
│   │   ├── test_hardware.py
│   │   ├── test_logger.py
│   │   └── test_tracker.py
│   ├── __init__.py
│   ├── cli.py
│   ├── logger.py
│   ├── requirements.txt
│   └── setup.py
└── README.md

Documentation

1. Hardware

1.1 Octoboard

The Octoboard is a custom-designed PCB that forms the core of the MPPT system, providing capabilities for maximum power point tracking in solar cell testing and evaluation.

Key Components:

  • MCP23017: 16-bit I2C I/O expander for digital control
  • MCP4728: 4-channel DAC for voltage control
  • ADS1115: 16-bit ADC for precision measurement
  • LMV324: Quad operational amplifiers for signal conditioning
  • 74HC4051: Analog multiplexers for efficient channel selection

Octoboard PCB Layout

Component Specifications

Component Type Key Specifications Datasheet
MCP4728 DAC 12-bit, 4-channel, I2C Datasheet
ADS1115 ADC 16-bit, 4-channel, I2C Datasheet
LMV324 Op-Amp Rail-to-rail, low power Datasheet
74HC4051 Multiplexer 8-channel analog Datasheet
MCP23017 I/O Expander 16-bit, I2C Datasheet

System Architecture

The MPPT system is designed with a hierarchical structure:

  1. Central Raspberry Pi controller
  2. Multiple Octoboards (8 channels each)
  3. I2C communication backbone
  4. Integrated sample holder with thermal management

Octoboard PCB Layout

1.2 Measurement Chuck

The Measurement Chuck allows up to 10 substrates (40 solar cells on a "University of Marburg" cell layout) to be aged under a nitrogen atmosphere. Due to its compact design, up to eight measurement chucks can be fit in a Solaronix SOLIXON A-45 solar simulator.

Operation & Handling To replace the substrates inside a chuck:

  1. Disconnect the flat ribbon cables and nitrogen supply hoses (quick-connect couplings ensure that the remaining substrates stay in an N₂ atmosphere).
  2. Transfer the chuck to a glovebox, where the cells can be exchanged by loosening the screws as shown in the video below.
  3. Reinsert the newly equipped chuck into the sun simulator and attach it to the cables and supply hoses.

2. Software

Installation

  1. Clone the repository:
git clone https://github.com/H2020DiamondEU/octoboard.git
cd octoboard
  1. Install dependencies:
pip install -r software/requirements.txt
  1. Install the package:
pip install -e .

Usage

  1. Basic operation:
from software import OBoardManager

# Initialize manager with I2C bus number
manager = OBoardManager(i2c_num=1)

# Start MPP tracking on all channels
manager.cycle_all_channels(iterations_per_channel=10)
  1. Command-line interface:
python -m software.cli 1  # Start tracking on I2C bus 1

3. Data Management

Data is stored in CSV format with the following structure:

  • Location: data/[board_id]_channel_[n]_data.csv
  • Format: timestamp, voltage, current, power, temperature

4. Troubleshooting

Common issues and solutions:

  1. I2C Communication Errors

    • Check bus number and device addresses
    • Verify cable connections
    • Check for address conflicts
  2. Measurement Instability

    • Verify power supply stability
    • Check contact resistance

License

This project is licensed under the MIT License. See LICENSE for details.

Links

Contact

For further information on integrating this measurement system into your PV lab, please contact:

  • Lukas Wagner, Physics of Solar Energy Conversion Group, Philipps-University Marburg, Germany.
  • Clemens Baretzky, Fraunhofer Institute for Solar Energy Systems ISE, Germany.

Acknowledgments

This design was developed at the University of Marburg and Fraunhofer ISE. The project is funded by the European Union in the Horizon 2.5. Climate, Energy and Mobility programme under Grant Agreement No. 101084124. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union. Neither the European Union nor the granting authority can be held responsible for them.