I hacked a commonly-available MT3608 boost converter PCB into a constant-current trickle charger:
The MT3608 is an SOT23-6 boost converter IC from Aerosemi. The cheap PCBs incorporate a 25-turn pot to control the output voltage. The pot is used to sample a fraction of the output voltage for the feedback connection to the chip. I unsoldered the pot and replaced it with a fixed resistor in the negative output line. This is a common trick to convert switching converters to produce a constant current output:
Here's a partial schematic of the modification:
Using a constant-current output lets me limit the current drawn from the coin cell during charging. This is a key feature, since the amount of energy you can draw from the coin cell is a strong function of current: the lower the current, the more energy you can (eventually) get.
Since the MT3608 compares the feedback voltage to an internal 0.6V reference, the output current is equal to 0.6/R1. For the first test, I chose a 360-ohm resistor, for an output current of 1.7mA. Since the coin cell has a nominal voltage of 3.0, while the 4x NiCd's should be around 4.8 during most of the charge cycle, I expect a current drain from the coin cell of around 2.7mA. In reality, the cell voltage quickly dropped to around 2.5V, while the NiCd voltage is around 5.0V, so the input current is more like 3.4mA.
Before you (ab)use the MT3608 like this for other constant-current purposes (like LED driving), you should check that the feedback is stable. The way I'm using it, the charging NiCds act like an enormous filter capacitor on the output, so there is no problem.
A day later, and the cells are still charging. After the coin cell voltage drops significantly below 2.0V, I'll stop the charging and drive some screws!