Raspberry PI HAT - Real Time Clock - DS1307 RTC - I2C
The Raspberry PI HAT - Real Time Clock is a battery backed real-time clock board for the Raspberry Pi A+, Raspberry Pi B+, Raspberry Pi 2 Model B, Raspberry Pi 3 Model B, Raspberry Pi 3 Model A, and Raspberry Pi 4 Model B.
Despite the Raspberry Pi is a great low cost computer with thousands of different uses it comes without a real-time clock. In order to keep updated the date and time the Raspberry Pi connects to an Internet Time Server and synchronizes them using the Network Time Protocol (NTP). If the Raspberry Pi is not connected to the net, every time you switch it off, it forgets the date and time and you have to manually set them again next time you switch your Raspberry Pi on.
The Raspberry PI HAT - Real Time Clock is a battery backed real-time clock board for the Raspberry Pi A+, Raspberry Pi B+, Raspberry Pi 2 Model B, Raspberry Pi 3 Model A, Raspberry Pi 3 Model B, and Raspberry Pi 4 Model B. It keeps the date and time while the Raspberry Pi is switched off. When Raspberry Pi switched back on, it can synchronizes the date and time from the Real Time Clock.
The Raspberry PI HAT - Real Time Clock uses the DS1307 RTC real time clock and a CR2032 battery to maintain the date and time when the main system power is not available. The Raspberry PI HAT - Real Time Clock also includes an I2C logic level converter making the Raspberry Pi's I2C bus, 5V devices tolerant.
Warning: Do not connect the Raspberry PI HAT - Real Time Clock to your Raspberry Pi when powered without the battery installed. This can damage the DS1307 RTC chip.
The Raspberry PI HAT - Real Time Clock uses a CR2032 button battery (battery included).
Installing Raspberry PI HAT - Real Time Clock on a Raspberry Pi with Raspian Linux 3.18 or later
Step 1: With your Raspberry Pi switched off install the Raspberry PI HAT - Real Time Clock on the Raspberry Pi GPIO port and insert a CR2032 coin battery into the battery holder.
Step 2: Run the Raspberry Pi config utility and enable I2C
sudo raspi-config
Select "Advanced Options" and then "I2C - Enable/Disable automatic loading". A prompt will appear asking Would you like the ARM I2C interface to be enabled?, select Yes, exit the utility and reboot your Raspberry Pi.
sudo reboot
Step 3: Install i2c-tools using:
sudo apt-get install i2c-tools
Step 4: Once you have installed I2C check that the Raspberry PI HAT - Real Time Clock has been detected using:
sudo i2cdetect -y 0 (if using v1 Raspberry Pi or)
sudo i2cdetect -y 1 (if using v2 Raspberry Pi)
The Raspberry PI HAT - Real Time Clock should appear on channel 68 as shown in the screen shot below. If the Raspberry PI HAT - Real Time Clock does not appear check that the battery is installed correctly and is fully charged:
Step 5: Edit the file config.txt:
sudo nano /boot/config.txt
At the end of the file add
dtoverlay=i2c-rtc,ds1307
Save your changes.
Step 6: Add the module to /etc/modules:
sudo nano /etc/modules
Add at the end of the file
rtc-ds1307
Save your changes.
Step 7: Next edit edit /lib/udev/hwclock-set
sudo nano /lib/udev/hwclock-set
Commend out the following lines with #
if [ -e /run/systemd/system ] ; then
exit 0
fi
Save your changes.
Reboot the Raspberry Pi.
sudo reboot
If this is the first time you have run the Raspberry PI HAT - Real Time Clock it will display a date of January 1st 2000.
Step 8: If the Raspberry Pi is connected to the internet the correct date and time should be set automatically otherwise you can set the current date and time using:
sudo date -s "6 OCT 2015 18:00:00"
You can check the current linux date with the command (date). To save the date onto the Raspberry PI HAT - Real Time Clock use the following command:
sudo hwclock -w
Verify the date has been saved onto the Raspberry PI HAT - Real Time Clock with:
sudo hwclock -r
If everything worked correctly the Raspberry PI HAT - Real Time Clock should be initialized on boot and the current date and time will be loaded into Linux.
Schematics
You can download schematics from github at:
https://github.com/nationelectronics/
To download the schematics to your Raspberry Pi type in terminal:
git clone https://github.com/nationelectronics/nationelectronics_schematics.git
Other purchase options
You can buy this item at Amazon
https://www.amazon.com/dp/B01LRC3AF6
Other resources
Enabling The I2C Interface On The Raspberry Pi
Maxin Integrated DS1307, Serial, I2C, Real-Time Clock DATASHEET