In this Section
PyCubed has a high efficiency solar energy harvesting circuit that is configured charge 2S Li-ion battery packs. Based around the Analog Devices LTC4121 chip, the circuit can handle input voltages from 9V-40V, and is configured for a max power-point tracking (MPPT) target voltage of 75% Voc (open circuit panel voltage) with a maximum charge rate of 400mA.
All solar inputs feed into the energy harvesting circuit through D2, which is not populated by default. This intentional decision is a result of countless possibilities in solar panel designs, forcing you (the designer) to make a decision about D2 depending on you solar panel scheme.
<aside> ☝ What you populate D2 with depends on your solar panel scheme.
</aside>
The LTC4121 design requires an input diode between the solar panel(s) and the charging circuit's input pin. However, many solar panel designs already include a diode on the output, thereby making a diode on D2 counter productive.
From page 4 of the PyCubed mainboard schematic
The solar charging circuit can be found in the "Power" section of the schematic. The schematic includes import notes about features that may or may not be enabled by default.
The MPPT is enabled by default and set to 75% Voc. This means that the solar panels are expected to produce the most power at a fill factor of ~75% and the charging circuit will adjust input voltage (VCHRG_IN
) and output current (of VBATT
) to stay near the MPPT target voltage.
MPPT target voltage can be adjusted by changing the resistance values of R11 and R12. See the LTC4121 datasheet for more details. Component Datasheets
MPPT functionality can be disabled by replaced R11 with a 10K resistor and removing R12 altogether.
NOTE: I've noticed the charge current monitor is significantly less accurate with MPPT disabled.
We have to tell the charging circuit what voltage to stop charging (full battery). This is called Vfloat
in the datasheet and set with R16 and R19. PyCubed is configured for 8.4V. See the LTC4121 datasheet for more details. Component Datasheets
As described in the datasheet, the PROG
pin is used to set the maximum charge current but it can also be used to actively monitor the charge current going into the batteries.
(the charge current value is only valid when the CHRG
signal goes low)
cubesat.charging_current
from the pycubed.py library, it is measuring the analog voltage of the PROG
pin and then doing some calculations based on the information from the LTC4121 datasheet.