Universal Nicad/NiMH Charger

Sometimes its more convenient to recharge batteries 'in place' rather than removing them and putting them in an external charger.

This device is built around a PIC12F675 (a dandy little part from Microchip).   The number of cells (1 to 8) is programmed in using the one button.  The cell count is saved in EEPROM the next time you power up the device.

Using just one button for all operations is a bit tricky, but easy once you try it a few times.  Here is the operation as best I can explain it...

There are 2 types of button operations: Hit (less than 1 second), and Hold (over 1 second).  Here is what to do.

Apply power (12 to 24 volts DC) to the jack.  Then, connect the batteries.

The green light comes on (indicating power applied)
The red light flashes once for each cell.

Hit the button to display the cell count again.
Hold the button until you see one flash of the red light.
    Hit the button to enter the program mode - one flash of the red light.
       Hit the button once for each cell - light flashes for each hit.
       Hold the button to store count and return to start
    Hold the button until the red light comes on steady - unit will start charging.
        Wait for charge to end.
        Hold down to return to start.

During charging the red light 'winks' out about once per second for each volt short of a full charge.  The result is that it flashes faster as full charge is approached.   A timeout is provided if full charge is not acheived after several hours.

Once full charge is complete.  The red light repeatedly flashes once and a small charge current (short pulse) is applied to the batteries.  Two flashes indicates that the unit timed out.

This design could use some improvements.  However, it does work for me quite well at present, so I releasing the design at this time.

Single Sided Board Layout Print at 52% .


Source File (CVASM16)  The assembler is available from my home page.

Object File  If your programmer gives an error, try removing the 2nd to last line used to specify the PIC type.