Description: This is the SparkFun Real Time Clock (RTC) Module, this little breakout that uses the DS1307 to keep track of the current year, month, day as well as the current time. The module comes fully assembled and includes a small CR1225 Lithium coin cell battery that will run the RTC for a minimum of 9 years (17 years typical) without an external 5V power supply.
The DS1307 RTC is accessed via the I2C protocol. We’ve written a test-bed to program the modules, this code should give you some insight on how to interface the module to any microcontroller using our example software I2C and BCD routines.
This rev of the Real Time Clock module finally adds I2C resistors and a larger battery pad to fix the problems with the battery shorting to the board.
Dimensions: 0.75x0.75" (20x20mm)
Based on 9 ratings:
1 of 1 found this helpful:
Easy to use, I needed to set the clock too but it is easily accomplished with one line from RTClib (google it)!
1 of 1 found this helpful:
Preferred this over the “Dead On RTC”, as the I2C is easier to connect than the SPI on the ICSP for the boards i use. The product worked as intended out of the box. The clock may have been programmed, but i didn’t check. Piece of cake!
Being a thickheaded lout, the (typically awesome) SparkFun hookup guide would have been helpful to me. Still, i muddled through. I did use the AdaFruit branch of the JeeLabs library. (So i owe those folks.)
2 of 2 found this helpful:
NOBODY told me you had to SET THE CLOCK !!!! There was a lot about it was set at the factory and would go for 17 years, but nothing about that I had to set the clock. I found it in an obscure tutorial on the use of PICAXE and the I2C serial communication protocol. Please note on your SPARKFUN data spec that the breakout board has to have the data SET with a HI2COUT instruction !
This module was exceptionally easy to hook up with an Arduino. Breakout board made it easy to test on a breadboard and then solder directly into the completed project. A minor improvement would be to add a non-connected hole and pad opposite the primary header holes to allow and additional header pin to be installed and make permanent installation onto another PCB sturdier.
I recently got an email from SparkFun with a clock project using a DS1307 and 3 5V volt meters. It looked interesting so I built one. This DS1307 module is easy to use – you just have to watch out for the 24 hr bug in the SparkFun DS1307 library, which I fixed in my GITHUB fork. It would also be nice if the library provided access to the DS1307’s 56 bytes of battery backed ram, which I plan to add to my fork (because I want to use it).
But the DS1307 module itself is great.
This is a good solution for take time into account
In my case, the only problem was battery, it run fewer than expected.
Using it to do the timing for an automatic fish feeder as part of a high school programming, hardware, 3D printing project. The hardware being an Arduino Uno,
Worked right out of the box! All I had to do is solder on a header and unsolder the solder jumpers that pulled up the SDA and SCL to +5V since the Raspberry Pi I was connecting to already has pullups to +3.3V on-board. A bit of code, 4 wires to connect, and I could read and write the time registers to set and read the time.
Almost the smallest I’ve found. However, I’m designing a board that could use any available RTC. Adafruit, Ebay finds, etc. They mostly have similar pin configurations, except for this one. I’ll have to include two header options, because the small size outweighs the inconvenience.
The supply voltage for the RTC DS1307 needs to have a 5V input so it is not directly compatible with a 3.3V device (like a 3.3V Arduino or a Raspberry Pi). You would need to do some modifications before being able to use it with a 3.3V system.
You might be able to get away with just connecting the RTC to your 3.3V Arduino because of the open drain drivers => https://learn.sparkfun.com/tutorials/i2c#i2c-at-the-hardware-level . Otherwise, you might want to use a dedicated I2C logic level converter for the I2C pins => https://www.sparkfun.com/products/11955 . For the SQW pin, we recommend doing using a logic level converter https://www.sparkfun.com/products/12009 or voltage divider since the I/O of the Arduino is 3.3V.
For a Raspberry Pi, you can remove the solder jumpers for the pull-up resistors so that you can just use the Raspberry Pi’s internal pull-up resistors. For the SQW pin, we recommend doing using a logic level converter https://www.sparkfun.com/products/12009 since the GPIO for the Raspberry Pi is 3.3V.
Arduino I2C appears to lock sometimes when trying to communicate with the DS1307. There is a modified I2C library here to detect when this happens and resets the clock => http://www.paulodowd.com/2015/04/ds1307-woes-i2c-freezes-and-locks.html