DS1307 real-time clock (Tiny RTC) with ESP32

Supply 5 V Bus I2C I2C address 0x68 / 0x50 Measures time
SQDSSCLSDAVCCGNDBAT

Pins and ESP32 wiring

PinRoleESP32 pinNotes
SQNot wired to the ESP32—Square wave output. Leave unconnected
DSNot wired to the ESP32—Optional DS18B20 footprint. Leave unconnected
SCLI2C clock (SCL)D22Pulled up to 5 V on the board: remove the pull-ups or use a level shifter
SDAI2C data (SDA)D21Pulled up to 5 V on the board: remove the pull-ups or use a level shifter
VCCPowerVINNeeds 5 V: use VIN
GNDGroundGND
BATNot wired to the ESP32—Battery voltage. Leave unconnected

Suggested wiring for the 30-pin ESP32 DevKit, avoiding flash, input-only and strapping pins. BoardPilot checks it for you as you wire.

This module is sold for 5 V. Its outputs may be 5 V: use a level shifter or a voltage divider on ESP32 inputs.

Starter code (Arduino)

#include <Wire.h>

void setup() {
  Serial.begin(115200);
  Wire.begin(21, 22);  // SDA = GPIO 21, SCL = GPIO 22
  Wire.beginTransmission(0x68);
  bool found = Wire.endTransmission() == 0;
  Serial.println(found ? "DS1307 real-time clock (Tiny RTC) found at 0x68" : "Not found: check power, GND and SDA/SCL");
}

void loop() {}

Sources

Try it in 3D in BoardPilot

BoardPilot Part data (JSON)

Related parts

Part data: CC BY 4.0, free to reuse with credit to BoardPilot.