DS3231 RTC on ZS-042 module - if low power is important

This concerns the alternate circuit in my original post with repect to using the ZS-042 with Arduinos such as the Uno, Nano and Pro Mini.

I've experimented some with the Arduino Wire.h library for I2C. It appears that Wire.h enables the internal pullup resistors on SDA and SCL when you give the Wire.begin() instruction. If you then drop the ZS-042 module's Vcc pin to ground, you will be drawing current through those pullup resistors, through the 4.7K pullup resistors on the module, to the Vcc rail, which is now at ground. So before bringing Vcc low, you would want to disable the internal pullup resistors to minimize current flow. That could be done with the Wire.end() instruction, which turns off I2C and disables the resistors on the port pins. Or you could reverse the enabling of pullup resistors immediately after Wire.begin():

Wire.begin();
digitalWrite(SDA,LOW);
digitalWrite(SCL,LOW);

Also, as stated in the original post, when using the INTSQW pin to wake up the MCU, it's necessary to disable the pullup resistor on INTSQW on the ZS-042 module if you are going to bring the module's Vcc line low while sleeping. Otherwise, INTSQW will never go high because it has in effect a pulldown resistor to ground when Vcc is low. Instead, you would enable the internal pullup resistor on the MCU wakeup pin. Attached is a picture showing the trace to cut (or you can cut the resistor pin if you can get to it) to disable the INTSQW pullup resistor.