DS1707 RTC Problem

Hi all,

I've been hanging around a while now but now I've got a problem I can't seem to make sense of.

I recently bought a DS1307 RTC minitaure PCB off ebay and soldered it up (the pull up resistors and plug pins were loose) and attempted to run it with the RTClib library found here;

http://www.ladyada.net/learn/breakoutplus/ds1307rtc.html

The circuit seems fine but when I open the serial monitor i get a single line of random symbols a few of which appear every second or so. It never starts a new line or gives anything remotely coherent. The PCB is not the same design as used on the above site, but the RTC itself is the same.

Does anyone have an idea what might be wrong?

Any help would be much appreciated.

No code -- no idea.

See the (#) symbol?

Push it -- paste YOUR code in there. Between the two symbols.

Did you set the baud rate correctly? Should we keep guessing?

Welcome to the forum and all that -- but before you ask many questions -- did you look through other threads? Did you try other libraries?

Did you notice how many threads are sessions that are like pulling hens' teeth? :grin:

No problem. I've been able to solve a few problems by looking over the forums but not this one as of yet :roll_eyes:

Here's the code. Its just the same as in the RTCLib example. I know some people at least have been able to get this working. It's meant to print time every second.

Thanks

// Date and time functions using a DS1307 RTC connected via I2C and Wire lib
 
#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(__DATE__, __TIME__));
  }
 
}
 
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 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);
}

I had this EXACT same problem. Turned out to simply be the baud rate. Make sure the number in the corner of the serial com is 57600 as it is in your code, Serial.begin(57600);

That's it! XD

Everything seems okay now.

Thanks for your help.