DS1307 RAZ après coupure alimentation

Bonjour,
j'ai un module ds1307 chinois de la caverne que j'arrive faire tourner pour qu'il me donne l'heure.
Je règle sans problème l'heure mais le module RAZ à 1/1/2000 (et qui reste fixe, pas de décompte) dès que je coupe l'alimentation de mon Arduino ou celle du module. J'ai testé la pile qui me donne une valeur de 2,93v ce me semble suffisant.
De ce que j'ai lu sur différents forum l'initialisation ne serait pas bonne sur le CH 7... mais là je suis perdu.
Comment le mettre à 0 ?

J'utilise le simple code ci-dessous pour la mise à l'heure et la lecture.
Une fois la mise a l'heure effectuée je comment la ligne

rtc.adjust(DateTime(F(DATE), F(TIME)))

// Date and time functions using a DS1307 RTC connected via I2C and Wire lib
#include <Wire.h>
#include "RTClib.h"

#if defined(ARDUINO_ARCH_SAMD)
// for Zero, output on USB Serial console, remove line below if using programming port to program the Zero!
   #define Serial SerialUSB
#endif

RTC_DS1307 rtc;

char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

void setup () {

#ifndef ESP8266
  while (!Serial); // for Leonardo/Micro/Zero
#endif

  Serial.begin(9600);
  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }

  if (! rtc.isrunning()) {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
    
    // rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
    // rtc.adjust(DateTime(2018, 2, 14, 21, 20, 0));
  }
}

void loop () {
    DateTime now = rtc.now();
    
    Serial.print(now.year(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.day(), DEC);
    Serial.print(" (");
    Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
    Serial.print(") ");
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();
       
    Serial.println();
    delay(1000);
}