July 2021
The ZS-042 module is a very cheap DS3231 breakout board. Common on eBay and Amazon units can be had for less than a dollar. It is a bonus that the module comes with a 4K eprom as well. In my experience these units work well as a clock but damage the LIRC2032 battery that it is supposed to keep charged. I used one with the charger enabled for about a month and found the LIRC2032 had swollen and would not take a charge. So to use these ZS-042s the charging circuit needs to be disabled and a standard CR2032 battery used instead.
There are a lot of discussions on the net about this module. The best discussions can be found at the Arduino forum, the Cave Perl Project and One Transistor . All three sites discuss the charging circuit issue but the Cave Perl Project offers advice on how to make the board more power efficient. One Transistor gives a detailed explanation as to why the charging circuit is a problem on this board.
Basically — the built in battery charging circuit has a good chance of destroying LIRC2302’s because the voltage must be kept at a specific level to charge them. The charging circuit on the ZS-042 is not up to the task for this.
Certainly a standard CR2302 can not be used on an unmodified ZS-042. A non rechargeable battery should not be charged, at any voltage.
As far as I am concerned — the charging circuit must be disabled on this board. I don’t have confidence that I will be able to keep the supply voltage at just the right voltage to charge the battery correctly. Plus trickle charging a LIR2302 continuously is not recommended (see the links for more info).

To disable the charging circuit remove the 1N4148 diode, 200 ohm resistor or both from the board. About two minutes work with a soldering iron. Easy to follow instructions can be found here:
https://www.onetransistor.eu/2019/07/zs042-ds3231-battery-charging-circuit.html
If removing a SMD from your board seems daunting this Youtube video shows you all about it in less than two minutes –> How to Remove SMD Resistors & Capacitors Using a Regular Soldering Iron
A modified board looks like this:
With a simple mod these dirt cheap and highly available modules can be used in all our projects.
Datasheets:
- DS3231: https://datasheets.maximintegrated.com/en/ds/DS3231.pdf
- https://circuitpython.readthedocs.io/projects/ds3231/en/latest/
- https://circuitpython.readthedocs.io/projects/ds3231/en/latest/api.html#implementation-notes
- 24C32 : https://ww1.microchip.com/downloads/en/DeviceDoc/doc0336.pdf
- https://github.com/mcauser/micropython-tinyrtc-i2c/blob/master/at24c32n.py