Implementation Notes

This document serves as a guide to implement the Solar Master Rev 1 and Solar Slave Rev 2 as parts of a solar sense system. The solar sense system is designed to measure the voltage of each MPPT output and the current of each string of MPPTs. The solar slaves also may measure either the temperature of the solar panel or the MPPT depending on the placement of the sensor. 

Design Overview

Solar Panels and MPPTs

In MSXII, there are 2 strings of solar panels/MPPTs. In each string, there are 6 solar panels/MPPTs. The particular variant of Nomura MPPTs in the solar car has an output voltage range from 18 V to 33 V. In total, each string has a theoretical maximum voltage of 198 V in ideal sunlight and operating conditions. When few solar panels do not generate enough energy due to shading or the angle of the sunlight, the Normura MPPTs will try to maximize the efficiency by bypassing the shaded solar panel. We are interested in measuring the current and voltage output of the MPPTs. Since the MPPTs within a string are connected in series, they must have the same output current. The voltage of each MPPT varies depending on the conditions of the corresponding solar panel.

Solar Slaves

The main challenge of measuring the output voltage of MPPTs is the ground offset. Even though the voltage difference between the positive and the negative terminals of an MPPT is less than 33V, there might be a large ground offset between the negative terminal of an MPPT and the ground of the solar master's MCU. The solution to the ground offset issue is using a digital I2C isolator to separate the high-voltage and unsafe MPPT output from the low-voltage communication bus and MCU. Another issue is the electromagnetic interference in the solar car. The solar slaves need to transmit measurement data to the solar masters over a long cable. The solution is using differential I2C bus buffer to boost the maximum communication distance between the solar slaves and the solar masters.

Each solar slave has a power supply that is capable of converting MPPT output to 5 V. It also has a two-channel ADC with a configurable I2C address. The communication circuit on the solar slaves includes a PCA9615 bus buffer for converting regular I2C signals to differential signals. The communication circuit is powered by the solar master at 3.3 V. A digital I2C isolator separates the ADC from the communication circuit to prevent the ground offset issue and protect the driver from high-energy sources (i.e. MPPTs).

Solar Masters

The purposes of the solar masters are communicating with solar slaves, measuring the current output each string, and connecting/disconnecting the solar panels from the PJB via a relay. The solar masters use the same PC A9615 chip to convert the differential I2C signals to the regular I2C signals for the MCU. It uses a hall effect current sensor to measure the MPPT output current and output analog value. An ADC on the solar master board measures the current sensor output and reports it to the MCU. The MCU may determine the output current based on either equations or a look-up table. The relay is simply being controlled by an output pin in the MCU.

Implementing Solar Sense

Connecting MPPT to Solar Slave

The solar slave is designed to be stacked below the MPPT. The Normura MPPT has four terminals. Two terminals (PV_IN+ and PV_IN-) are inputs to the MPPT. They should be connected to the corresponding through holes on the solar slave board. The PV_IN+ and PV_IN- through holes are connected to the MX150L connector (SOLAR PANEL INPUT) via PCB traces. The other two terminals (PV_OUT+ and PV_OUT-) should be connected to MPPT_HV and MPPT_GND through holes.

A 10k ohm thermistor can be connected to the solar slave board via the P2 connector for sensing the temperature of the solar panel or the MPPT board.


Configuring Solar Slave

Since six solar slaves are connected to a single bus of I2C, their ADCs need to be assigned to different addresses to avoid conflict. The address can be configured by toggling the switches on ADDR0 and ADDR1.

I2C AddressADDR0ADDR0 LADDR0 HADDR1ADDR1 LADDR1 H
0b1101 000LowONOFFLowONOFF
0b1101 001LowONOFFFloatONON
0b1101 010LowONOFFHighOFFON
0b1101 100HighOFFONLowONOFF
0b1101 101HighOFFONFloatONON
0b1101 110HighOFFONHighOFFON
0b1101 011FloatONONLowONOFF
0b1101 111FloatONONHighOFFON

Configuring MPPT

The performance of the MPPT can be optimized by tweaking the "PV_OUT Adjust" variable resistor. 

[Work in progress]

Connecting Solar Slaves to Solar Master

The solar slaves are daisy-chained together via 6-wire cables and MX150L connectors. The wires should be harnessed to a MX150L in the following configuration. The SCL(P/M) and SDA(P/M) pairs are differential signals and should be harnessed as twisted pairs for greater EMI immunity.

Connecting a String of Solar Slaves to Termination Resistors

The differential I2C signals require termination resistors to prevent signal reflection. The solar master has termination resistors on the PCB. A separated circuit board with proper resistor values must be attached to the other end of the daisy-chained string. For testing purpose, an idle solar master can act as the termination resistors.