RTC: DS3231 Sleep Mode

Back story: So I achieved and done test on how to save power and put sleep mode on arduino
and I want to combine the real time clock DS3231 with arduino/328p to get precise time but
I don’t know exactly how to put the RTC in sleep more, I read and ppl say that you can put
the RTC in sleep mode and save a lot of current and the current it will consume will be

I’d like to know how to do that and how to wake it up in the same time with the arduino
in my case a breadboard 328 at 8Mhz.

ps I’ll use a stand alone DS3231 not a module because I’m building my own PCB’s so if you
got any suggestions about pullupresistors…etc or adding an extra component pls tell me.
I’m using 1st time a RTC


The DS3231 data sheet clearly explains the device power consumption under all the conditions of interest.

It also gives design guidelines. Go through it carefully.

To be honest I was thinking to go thru the datasheet but you know maybe make a topic
and get suggestions from already experienced ppl with that RTC.

Well I will give a look on the datasheet.


So I came up with this design following the datasheet:

  • 32Khz It may be left open if not used
  • VCC connect to GND if not used
  • Reset ???
  • INT (how should I use it?)

VBAT for me will use 3.7v I put 5v because that’s what my other parts are …etc

What do you think it’s ok like that? and does it really have a sleep mode the RCT + How do I wake up
/ the 328p from sleep mode if the RCT got one

I read that the RTC use 0.1mA can I get it lower or that’s the max lower it can get?


Just a quick catch... There's no sleep mode for the DS3231. What you have is a VIn and VBat. When powering via VIn you got all features working but a higher consumption. When pkwering via VBat some features are disabled ans you can so "timekeeping" only, reducing the consumption to around 1uA.

My own experience with low-power devices (Whisper Node) suggesta you to constantly power the RTC only via the VBat and allocated a MCU pin which can drive the VIn. This way you can have the lowest power consumption and, at the same time, be able to power the RTC via VIn if necessary.

I don't remember exactly what features are not available when using VBat only, maybe is just 32KHz or 1Hz output... Need to check the datasheet, but you might decide do not connect VIn at all.

Well I want just to get the time and temp if possible, I don't need extra options or alarms.

I still don't understand what the INT pin is doing and how can I use it, or there is no point to talk about
it if I use only VBat?

I still don't understand what the INT pin is doing

What do you not understand about the explanation of the INT pin function in the DS3231 data sheet?

Active-Low Interrupt or Square-Wave Output. This open-drain pin requires an external pullup resistor connected to a supply at 5.5V or less. It may be left open if not used. This multifunction pin is determined by the state of the INTCN bit in the Control Register (0Eh). When INTCN is set to logic 0, this pin outputs a square wave and its frequency is determined by RS2 and RS1 bits. When INTCN is set to logic 1, then a match between the timekeeping registers and either of the alarm registers activates the INT/SQW pin (if the alarm is enabled). Because the INTCN bit is set to logic 1 when power is first applied, the pin defaults to an interrupt output with alarms disabled.

So I gave a 2nd more careful read and it's just for alarm if im not wrong.

So it's kinda useless for me this pin :smiley:


When pkwering via VBat some features are disabled ans you can so "timekeeping" only, reducing the consumption to around 1uA.

If using only the VBat it consumes up to 0.001mA then that's totally fine for me but what
about when the arduno wakes up and ask for the time will be the speed be enough for SDA
/ SCL to work fast?

it's just for alarm

No, read it a third time.

btw I will use a single LiPo battery 3.7v what will be the best pull up resistors for the SDA / SCL?

People say from 1k to 10k but what are the best options?