You said you removed the pullups from the Due board. Does the RTC board have its own pullups?
Yes 4.7 kohm
If you think it's a software problem, why don't you post your code?
This is it :
Harware setting : Arduino DUE (genuine) with nothing plugin except the RTC
RTC : ebay 3231 breakout board with 4.7 k ohms pull up resistors
DUE RTC
3.3V <--> Vcc
GND <--> GND
SDA <--> SDA1
SCL <--> SCL1
code : example ds1307 from the RTClib
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 rtc;
void setup () {
Serial.begin(57600);
Wire1.begin();
rtc.begin();
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(2014, 1, 21, 3, 0, 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(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
Serial.print(" since midnight 1/1/1970 = ");
Serial.print(now.unixtime());
Serial.print("s = ");
Serial.print(now.unixtime() / 86400L);
Serial.println("d");
// calculate a date which is 7 days and 30 seconds into the future
DateTime future (now.unixtime() + 7 * 86400L + 30);
Serial.print(" now + 7d + 30s: ");
Serial.print(future.year(), DEC);
Serial.print('/');
Serial.print(future.month(), DEC);
Serial.print('/');
Serial.print(future.day(), DEC);
Serial.print(' ');
Serial.print(future.hour(), DEC);
Serial.print(':');
Serial.print(future.minute(), DEC);
Serial.print(':');
Serial.print(future.second(), DEC);
Serial.println();
Serial.println();
delay(3000);
}
This is working well, as expected
2015/7/21 22:11:45
since midnight 1/1/1970 = 1437516705s = 16637d
now + 7d + 30s: 2015/7/28 22:12:15
Now the same thing with (SDA and SCL ) (pins 20 and 21) using "wire.begin" instead of "wire1.begin"
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 rtc;
void setup () {
Serial.begin(57600);
Wire.begin();
rtc.begin();
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(2014, 1, 21, 3, 0, 0));
}
}
This does not work ! Most probably the code from the RTClib does not allow to use (SCL and SDA) ???
This is what I want to know, and how to make it work.
2000/0/0 0:0:0
since midnight 1/1/1970 = 2313941504s = 26781d
now + 7d + 30s: 2043/5/6 17:32:14