The Raspberry Pi doesn’t have a little coin-battery-powered ‘Real Time Clock’ (RTC) module, which keeps time even when the power is off, or the battery removed.
To keep costs low and the size small, an RTC is not included with the Raspberry Pi. If your Raspberry Pi is connected to the Internet via Ethernet or WiFi, the time/date will be automatically updated from the global ntp (nework time protocol) servers.
For stand-alone projects with no network connection, you will not be able to keep the time when the power goes out.
In this project we will show you how to add a RTC Click shield from Mikroelektronika, without the use of iron solder or breadboard.
This is possible using a Click Shield ( MIKROE 1512 ) for Raspberry PI from Mikroelektronika, easily found on RS Components (http://uk.rs-online.com/web) RS SN 811-7024 and one RTC Click shield RS SN 820-9832.
We just need to insert the two Click board, please have a look to the images.
Step 1: Configuring the I2C
Now that we have the module correctly inserted we can set up the module, configuring the I2C :
If you are using Raspbian, you will need to open LXTerminal and enter the following command:
sudo nano /etc/modules
and add these two lines to the end of the file :
i2c-bcm2708
i2c-dev
Step 2: Install the i2c-tools utility
The I2C bus allows multiple devices to be connected to your Raspberry Pi, each with a unique address, that can often be set by changing jumper settings on the module. It is very useful to be able to see which devices are connected to your Pi as a way of making sure everything is working.
To do this, it is worth running the following commands in the Terminal to install the i2c-tools utility:
sudo apt-get install python-smbus
sudo apt-get install i2c-tool
Depending on your distribution, you may also have a file called /etc/modprobe.d/raspi-blacklist.conf.
If you do not have this file then there is nothing to do, however, if you do have this file, you need to edit it and comment out the lines below:
blacklist spi-bcm2708
blacklist i2c-bcm2708
.. by putting a # in front of them. Open an editor on the file by typing
sudo nano /etc/modprobe.d/raspi-blacklist.conf
.. then edit the file so that it appears as above and then save and exit the file using CTRL-x and Y.
Once this is all done, reboot!
sudo reboot
Step 3: See I2C devices connected
Now when you log in you can type the following command to see all the connected devices (if you are running a 512MB Raspberry Pi Model B)
sudo i2cdetect -y 1
This shows that one I2C address is in use – 0x50.
Note that if you are using one of the very first Raspberry Pis (a 256MB Raspberry Pi Model B) then you will need to change the command to:
sudo i2cdetect -y 0
The Raspberry Pi designers swapped over I2C ports between board releases.
Remember:
512M Pi’s use i2c port 1,
256M ones use i2c port
Step 4: Now we will set the RTC….
Now that we have the module wired up and verified that you can see the module with i2cdetect, we can set up the module.
First, load up the RTC module by running
sudo modprobe rtc-pcf8583
Then, as root (type in sudo bash) run
echo pcf8583 0x50 > /sys/class/i2c-adapter/i2c-0/new_device (if you have a rev 1 Pi)
echo pcf8583 0x50 > /sys/class/i2c-adapter/i2c-1/new_device (if you have a rev 2 Pi)
You can then type in exit to drop out of the root shell.
Then check the time with
sudo hwclock -r
For more detail: Adding a Real Clock Calendar to your Raspberry PI