Jump to content

Raspberry Pi add on real time clock


Recommended Posts

The Raspberry PI is a wonderful little computer but does lack a real time clock. Fortunately there are add on boards available that cost only a few quid and can be simply added to the mainboard of the PI.

There are many available and most seem to use the DS3231 chip along with a battery. I bought a set of 4 from a well known online retailer and added them to my various PIs.


The advantage now is I can take the telescope and Astroberry loaded PI out in the field and know that the time is correctly set. Previously unless you had a connection to the internet and hence an NTP time source you had to manually set the clock before starting imaging.


I think the ZWO ASIAir and similar boxes already have a DS3231 fitted as they are also Raspberry PI based computers. These boards also work in Arduino devices apparently but I don't have one of those so can't comment.




To fit a board you locate it over the GPIO pins on the inside corner with the RTC board pointing inwards, as shown below.




You now need to configure your Raspberry Pi to recognise and use the board.
Turn on the Raspberry Pi and verify that the board is seen by running sudo i2cdetect -y 1 at the command line. You should see ID #68 show up (the I2C address of the DS3231 Real Time Clock chip):



The RTC module must be loaded by the kernel by running:
sudo modprobe rtc-ds1307


Now you need to be running as the super user; type in:
sudo bash


and then:
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device

Enter exit 
Check the time on the RTC device using:
sudo hwclock -r
If this is the first time the module has been used, it will report back Jan 1 2000, and you'll need to set the time to the current time.
The easiest way is to connect it up to Ethernet or Wifi. It will automatically set the time from the network. You can check the time using the date command


Run sudo hwclock -w to write the system time to the RTC board.
You can then verify it with sudo hwclock -r


Then to make the PI automatically load the RTC on reboot there are two files you need to modify

In a terminal window run sudo nano /etc/modules and add rtc-ds1307 at the end of the file like so:



WriteOut and Exit nano at this point



sudo nano /etc/rc.local
and add the following lines to the file:
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
sudo hwclock -s

Just before the exit 0




Again WriteOut and Exit the file


The next time you reboot the PI will be using the real time clock as its time source and it will be good to take out into the field for imaging duties.


  • Like 2
Link to comment
Share on other sites

Thanks that's a good find and one problem solved on my list 🙂. I'm planning to use Astroberry with my SLR lens auto-focuser build. As the autofocus wont be from ZWO I cant use the ASIAIR. I have my Pi, home brew Skywatcher focus motor controller and EQMOD interface all ready. Just need to compile the driver for the PI (I have my Windows ASCOM driver to base it on) and "design" the coupling to the lens focuser and make it mechanically sound.

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...