An AVR microcontroller (ATtiny26) implements a buck-regulator for charging a 6V sealed lead acid battery. The battery voltage, solar panel voltage, charge current and ambient temperature are measured via the internal ADC at various points in the charging cycle. The control algorithm aims for constant voltage charging during periods with adequate solar insolation. The controller enters a low-power sleep mode when there is too little insolation for charging.
It was built with the intention of powering a remote data-logger, but that part is still to be realized...