0

Having problems with DS1307/RTClib hanging my Arduino
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

Having problems with DS1307/RTClib hanging my Arduino

by mlgualtieri on Sun Dec 15, 2013 12:16 am

I recently purchased a DS1307 Real Time Clock Breakout Board Kit, and am having problems getting it working. When I loaded up the code provided in the online how to, nothing printed out to my serial console. I've fiddled with this and other RTC examples for hours and I just can't seem to get anything working. I'm suspecting that the issue might be software related, but that is just a guess.

I have verified that the battery voltage is reaching the DS1307 chip, and that 5v is being input into the breakout board from the Arduino. The pins are also plugged into the correct positions. I also just retouched up all my solder connections, just to make sure that it wasn't related to a bad joint.

If I run this code, nothing is output onto my serial console:
Code: Select all | TOGGLE FULL SIZE
#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();
    delay(1000);
}


If I comment out everything in loop() I get the message "RTC is NOT running!" printed out. This would make sense as I haven't been able to set the default time. Also, if I try to set the time with the RTC.adjust, this also causes the arduino to hang, and the time is not updated from what I can tell.

I have been able to in certain cases get just one of the 'now' parameters to print, but can only get one to print at a time. If I try to print two, then it will hang.

So, I'm not sure what is happening and am out of ideas. I am using the Arduino IDE 1.0.5 under Gentoo Linux, with gcc avr-4.6.3, binutils avr-2.23.2, and cross-avr/avr-libc-1.8.0. The code compiles fine and loads onto the Arduino, but it just doesn't do anything.

Any help is appreciated!
mlgualtieri
 
Posts: 5
Joined: Sat Dec 14, 2013 10:11 pm

Re: Having problems with DS1307/RTClib hanging my Arduino

by adafruit_support_bill on Sun Dec 15, 2013 8:39 am

Hanging is usually an i2c connectivity problem. If you post photos of your solder and wiring we'll see if we can spot any problems.

adafruit_support_bill
 
Posts: 60381
Joined: Sat Feb 07, 2009 10:11 am

Re: Having problems with DS1307/RTClib hanging my Arduino

by mlgualtieri on Sun Dec 15, 2013 11:34 am

Thanks for getting back to me! Below are the requested images. The black wire goes to ground, orange to +5v, yellow to SDA, and grey to SLC. I also have the blob of solder under the battery, and as I mentioned in my previous post have verified 3v entering the chip.

IMG_20131215_101910.jpg
IMG_20131215_101910.jpg (750.79 KiB) Viewed 1841 times

IMG_20131215_101509.jpg
IMG_20131215_101509.jpg (450.93 KiB) Viewed 1841 times

IMG_20131215_101447.jpg
IMG_20131215_101447.jpg (434.87 KiB) Viewed 1841 times
mlgualtieri
 
Posts: 5
Joined: Sat Dec 14, 2013 10:11 pm

Re: Having problems with DS1307/RTClib hanging my Arduino

by adafruit_support_bill on Sun Dec 15, 2013 2:06 pm

Your solder and connections look OK. The example code should run without changes. From the symptoms, it sounds like you are communicating with it partially. I'm going to assume that you just got a flaky DS1307 chip. If you contact support @adafruit.com with a link to this thread we can send you a new one.

adafruit_support_bill
 
Posts: 60381
Joined: Sat Feb 07, 2009 10:11 am

Re: Having problems with DS1307/RTClib hanging my Arduino

by mlgualtieri on Sun Dec 15, 2013 6:23 pm

Sounds good... Thanks for your help! I was also wondering about the chip. I'll follow up on the thread after I put the new one in place.
mlgualtieri
 
Posts: 5
Joined: Sat Dec 14, 2013 10:11 pm

Re: Having problems with DS1307/RTClib hanging my Arduino

by Tim McPherson on Tue Dec 17, 2013 3:28 am

Hi,

While I've mentioned it before to tech support, it apparently still has the same problem.

The code in the setup loop that reads:

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__));
}

The RTC.adjust function will only execute while the preceding: if (! RTC.isrunning()) is TRUE.

In other words the RTC.adjust() will not execute unless the RTC is NOT running and needs to be moved out of the 'if' condition in order to set the time.

It worked for me to set the time. I hope this helps others trying to set the time with this code.

Tim
Tim McPherson
 
Posts: 24
Joined: Tue Jan 01, 2013 6:01 pm

Re: Having problems with DS1307/RTClib hanging my Arduino

by adafruit_support_bill on Tue Dec 17, 2013 7:23 am

In other words the RTC.adjust() will not execute unless the RTC is NOT running

This is by design. Otherwise, the time would get set back to the compile time anytime the Arduino was powered up or reset.

To stop the RTC, disconnect power and pull the RTC battery our for a few minutes. Then re-install the battery, power it up and upload the (freshly compiled!) code to reset the time.

adafruit_support_bill
 
Posts: 60381
Joined: Sat Feb 07, 2009 10:11 am

Re: Having problems with DS1307/RTClib hanging my Arduino

by Tim McPherson on Thu Dec 19, 2013 5:58 pm

I'm sorry I didn't make my point clear again.
The way the code is written. The adjust function will never execute because it is nested in the 'not running' conditional. It needs to be moved out of the nesting if you want to set the time upon compiling. You have it commented out to prevent unwanted execution, but it will never execute even if un-commented the way you have it now. Try it and see. I'm sorry I can't make it any more clear.

Tim
Tim McPherson
 
Posts: 24
Joined: Tue Jan 01, 2013 6:01 pm

Re: Having problems with DS1307/RTClib hanging my Arduino

by adafruit_support_bill on Thu Dec 19, 2013 6:14 pm

Hi Tim,

I have run this code many times on many DS1307s and DS3231s and it has worked fine every time. The RTC.adjust() call should start the clock running. This is a fairly mature library and we have had few reports of problems with it.

adafruit_support_bill
 
Posts: 60381
Joined: Sat Feb 07, 2009 10:11 am

Re: Having problems with DS1307/RTClib hanging my Arduino

by mlgualtieri on Fri Dec 20, 2013 12:44 am

Ok... I received the new DS1307 breakout today. I soldered it up, loaded the code, and again no output. I doubt I received two bad units, so something else must be the problem. I'm unsure what though.

Could the Arduino be bad? This Arduino does work perfect in other applications, but I've not used the analog pins on this unit.

I have verified that the 5v input from the Arduino is reaching the chip, as well as 3v input from the battery.

EDIT: Problem sort of solved. I started thinking it was a software issue again, so I brought out a old testing laptop I had in the closet and installed the Arduino IDE on it. Loaded up the sketch, and it worked! I don't know why it would work here and not on my regular laptop. I'm guessing it might have something to do with the crossavr toolchain and the bytecode that is actually loaded onto the Arduino. I've never had any previous problems, so there could be an issue deep in the library that arises with this specific toolchain. Anyway, I was able to integrate the clock into my project, and load the sketch onto the Arduino, so it's good to go.
mlgualtieri
 
Posts: 5
Joined: Sat Dec 14, 2013 10:11 pm

Re: Having problems with DS1307/RTClib hanging my Arduino

by adafruit_support_bill on Fri Dec 20, 2013 7:29 am

Interesting. Every once in a while we run across anomalies like that due to compiler differences. What are the two different systems you are running?

adafruit_support_bill
 
Posts: 60381
Joined: Sat Feb 07, 2009 10:11 am

Re: Having problems with DS1307/RTClib hanging my Arduino

by mlgualtieri on Fri Dec 20, 2013 2:19 pm

adafruit_support_bill wrote:Interesting. Every once in a while we run across anomalies like that due to compiler differences. What are the two different systems you are running?
My main laptop runs Gentoo Linux (with the crossdev toolchain detailed in my initial post). I'm embarrassed to say the machine that got it working was an old WinXP laptop :oops: that was used to test installation of a Linux OS my previous company had developed.

Currently, all my other machines are running Gentoo, and since I thought it might have been an issue with Gentoo's crossdev toolchain (which is was), the more expedient option was to try on the WinXP laptop instead of installing another distro on another machine.

Unfortunately, I can't do any more testing for the time being, as the unit was packaged up in a box and shipped out this morning. I needed the RTC to finish off an Arduino word clock I built as a Christmas gift. The final product looks and works great -- although I was in such a hurry to get it packaged and shipped this morning I forgot to take a picture/video of the final assembly!

Thanks again for your help! I feel as though I should reimburse Adafruit for the second breakout board, as it was not a hardware fault.
mlgualtieri
 
Posts: 5
Joined: Sat Dec 14, 2013 10:11 pm

Re: Having problems with DS1307/RTClib hanging my Arduino

by adafruit_support_bill on Fri Dec 20, 2013 2:57 pm

Not a problem. We all learned something from it. :D

adafruit_support_bill
 
Posts: 60381
Joined: Sat Feb 07, 2009 10:11 am

Re: Having problems with DS1307/RTClib hanging my Arduino

by thunnus on Thu Jan 02, 2014 7:15 pm

Hello

I apologize for the intervention

I have a small problem (lack of some knowledge in arduino and c / c + + :roll: ), I'm starting with the Arduino.
I am doing my 1st project, which consists of recording a temperature of a LM35 or Thermistor sensor with data logging in nini SD card in case of high temperature alarm with buzzer and strobes lights and the option of using a Mini Thermal Printer for printing with a push button and show the same time this information in an LSD with the event date.

But I'm with the following problem, change the analog ports between lcd backpack and DS1307 because librares are the two with the analog ports A4 and A5, and tabmbem can not settle with reading the DS1307 for Mini Printer.

Any help is appreciated!
thunnus
 
Posts: 4
Joined: Sun Dec 29, 2013 5:05 pm

Re: Having problems with DS1307/RTClib hanging my Arduino

by adafruit_support_bill on Fri Jan 03, 2014 7:24 am

@thunnus - Please start a new thread for your question. It is not related to the topic of this thread.

adafruit_support_bill
 
Posts: 60381
Joined: Sat Feb 07, 2009 10:11 am

Please be positive and constructive with your questions and comments.