In this Section

↩ Return Home

↩ Return to Resources


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.

Enabling Solar Input

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.


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.

  1. If your solar panel design DOES have an output diode on each panel:
  2. If your solar panel design DOES NOT have output diodes on each panel:

Circuit Design

From page 4 of the PyCubed mainboard schematic

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.

Setting the MPPT

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.

Setting the battery voltage target

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

Monitoring the charge current

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)