DS3231 - No Alarm when powered Off. Why?

Great! That's good to know, as I want to add that functionality to my clock apps.

Mmmmm....when power off module ds3231 on ZS-042 SQW pulldown so i think we need pullup interrupt pin where we connected SQW signal. So it will be in high state when power off and then when alarm triggered transistor on ds3231 will go LOW. So it's should be works...Is it a possibility?

jboyton:
@matte00, do you have the same module?

Yep the same module!

matte00:
Mmmmm....when power off module ds3231 on ZS-042 SQW pulldown so i think we need pullup interrupt pin where we connected SQW signal. So it will be in high state when power off and then when alarm triggered transistor on ds3231 will go LOW. So it's should be works...Is it a possibility?

In the case that both ZS-042 and the Arduino are both powered from the same 5V supply, The 8.4k pull up resistor on the ZS-042 will be okay, because a pull up is necessary unless there is one on the Arduino side.

That doesn't matter if the Arduino goes to sleep, since the 5V power is maintained to both modules. So in fact, SQW is still pulled up. In that situation the interrupt trigger should be LOW, as usual. For the Chronodot which has no pull up, I enable the internal pull up resistor on the Arduino.

So, yes, it works. Sorry for the confusion. The trouble I was having, was a different situation, where 5v power to the ZS-42 is turned off.

The main thing that is important with this module, is to remove the battery charging circuit unless you are using a rechargeable coin cell. You can do that by removing the charging diode D2 or resistor R5.

Since the power LED on the ZS-042 stays on with 5V, it would be a power drain in standby and so the LED or its current limiting resistor R1 should also be removed.

aarg:
So, yes, it works. Sorry for the confusion. The trouble I was having, was a different situation, where 5v power to the ZS-42 is turned off.

It's my situation too! Have you found a solution for this? If i power off 5v vcc from RTC module alarms stop working. Alarms work only when 5V are connected to the vcc pin of module. I try to pullup interrupt pin on arduino (high level) with 10/100kO but when i disconnect 5v SQW pin go forever Low and alarm stop working. Why pin go low and not stay high? It's should go LOW only when the alarm occurred!

Have you a solution? What did you do to make it work ?

matte00:
It's my situation too! Have you found a solution for this? If i power off 5v vcc from RTC module alarms stop working. Alarms work only when 5V are connected to the vcc pin of module. I try to pullup interrupt pin on arduino (high level) with 10/100kO but when i disconnect 5v SQR pin go forever Low and alarm stop working. Why pin go low and not stay high?

Have you a solution? What did you do to make it work ?

Sorry if this is repetitive, but there have been a lot of detours in this thread. I thought you were putting the Arduino in sleep mode? In that case, 5V would remain on both the Arduino and the RTC. In which case you would not have that problem.

To your second question, there is a trace you can cut on the board. I'm trying to keep this brief, to avoid confusion.

aarg:
I thought you were putting the Arduino in sleep mode? In that case, 5V would remain on both the Arduino and the RTC. In which case you would not have that problem.

I put arduino to sleep mode but i would like to turn off the module RTC (disconnect 5v to rtc module) for power saving. And then only when alarm occurred power up RTC module for date reading.

Thank you for you help!

The interrupt pin on the RTC has to be pulled up to Vcc through a resistor (~10K). But on that module it's pulled up to the board's Vcc, which you are powering down. So you need to modify the board so that the interrupt pin is pulled up even when the board is otherwise powered down.

jboyton:
The interrupt pin on the RTC has to be pulled up to Vcc through a resistor (~10K). But on that module it's pulled up to the board's Vcc, which you are powering down. So you need to modify the board so that the interrupt pin is pulled up even when the board is otherwise powered down.

Thank you mate! Can I do it removing 4k7 resistors or i need cut something traces?

From that posted schematic it looks like you can simply remove a resistor, but I'm not 100% sure. You'd still need to pull it up to Vcc somewhere else.

The standby supply current when the DS3231 is supplied from Vcc is specified at 170 uA at 5.5V.

If that is too much for your application, you could modify the RTC. There are two straightforward ways of doing it. You can cut a trace, or remove integrated resistor pack RP1 entirely.

Unfortunately, the trace is not in the easiest spot to cut. It is only about a millimeter long, directly between the RP pin and the via that conveys the signal to the 6 pin connector. It's very near a ground plane that might catch the knife and make it even harder to slice. But it is possible.

If you remove RP1 entirely, you are removing the pull ups for SQW, 32KHZ, SCL and SCA. That might be okay if you have pull ups for SCL and SCA on the Arduino (or enable the internal input pull ups in software).

Or you could use a Chronodot.

If you decide to cut the trace, I'll post detailed instructions.

Also don't forget to enable the internal pull up resistor on the Arduino pin that you use to detect the alarm, because you have removed the one on the RTC.

Found this page: Using a $1 DS3231 Real-time Clock Module with Arduino | Underwater Arduino Data Loggers

Just for fun, I timed myself on the job of removing the battery charge resistor, the power indicator resistor, and RP1 resistor pack. 60 seconds. Adding a small solder blob on RP1 was my method for that.

I can confirm that removing the resistor array solved my problem ( don't forget to enable the pullup on the arduino's interrupt pin ). Now the RTC running on battery correctly awakes my arduino with its alarm, and also I can read the time... So I no longer need to wake up the RTC to read the time :wink:

So Matte00, it should work for you too :wink:

Instead of cutting the trace or removing the entire resistor pack you might try simply lifting one of the two pins associated with that resistor. You can often do this with an exacto knife by placing it under the pin, then heating the pin with a soldering iron, and torquing the knife to bend the pin up.

aarg:
If you decide to cut the trace, I'll post detailed instructions.

Thank you aarg! Can you post instructions? :slight_smile:

guix:
I can confirm that removing the resistor array solved my problem ( don't forget to enable the pullup on the arduino's interrupt pin ). Now the RTC running on battery correctly awakes my arduino with its alarm, and also I can read the time... So I no longer need to wake up the RTC to read the time :wink:

So Matte00, it should work for you too :wink:

Great! Thank you guix. I'll try it!

jboyton:
Instead of cutting the trace or removing the entire resistor pack you might try simply lifting one of the two pins associated with that resistor. You can often do this with an exacto knife by placing it under the pin, then heating the pin with a soldering iron, and torquing the knife to bend the pin up.

It's a good idea but resistor pack is very very very very very small...and i haven't a bistoury :smiley:

Hi.
i'v read about the modification needed in order to work from battery but i'm not sure if i have to do both.
Trace cutting AND Resistors removing
OR can i do only one ?

Thank you

ntgr:
Hi.
i'v read about the modification needed in order to work from battery but i'm not sure if i have to do both.
Trace cutting AND Resistors removing
OR can i do only one ?

Thank you

You only have to do one. Of the two methods, removing the resistor pack is the safer, easier task. While the iron is hot, also remove the stupid charging circuit.