Skip to main content
RTC (Real Time Clock) module with I2C interface and 56 bytes of NV SRAM.

Pins

GND
ground
Ground
5V
power
Positive voltage (5V)
SDA
i2c
I2C data line
SCL
i2c
I2C clock line
SQW
output
Square wave output
The I2C address of the DS1307 is 0x68.

Attributes

initTime
string
default:"now"
Initial time of the RTC: “0”, “now”, or a valid ISO 8601 date string

Simulation Behavior

The simulated DS1307 is automatically initialized to the current system time when starting the simulation. It then keeps counting the time. You can override the initial time by setting the initTime attribute to a different value. The value can be either a valid ISO 8601 date string (e.g. “2019-11-19T11:41:56Z”), or one of the following special values:
  • “0” - Set the initial time to “2000-01-01T00:00:00Z”
  • “now” - Set the initial time to the current system time
“Z” at the end of the date string indicates that the time is in UTC, and not in the local time zone. If you omit the “Z”, the time will be interpreted as local time.
The code running in the simulation can update the date/time of the DS1307, and the DS1307 will keep track of the updated time.

Square Wave Output (SQW)

The SQW pin can output a square wave signal at one of four frequencies, or a static high/low level. Using the RTClib library, you can configure the SQW output with writeSqwPinMode():
ModeOutput
DS1307_OFFLOW
DS1307_ONHIGH
DS1307_SquareWave1HZ1 Hz
DS1307_SquareWave4kHz4.096 kHz
DS1307_SquareWave8kHz8.192 kHz
DS1307_SquareWave32kHz32.768 kHz

Example

To enable a 1 Hz square wave output:
#include <RTClib.h>

RTC_DS1307 rtc;

void setup() {
  rtc.begin();
  rtc.writeSqwPinMode(DS1307_SquareWave1HZ);
}

void loop() {
  // Your code here
}

Simulator examples

Build docs developers (and LLMs) love