element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Raspberry Pi
  • Products
  • More
Raspberry Pi
Raspberry Pi Forum Installing Code for PiFace Real Time Clock
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Raspberry Pi to participate - click to join for free!
Featured Articles
Announcing Pi
Technical Specifications
Raspberry Pi FAQs
Win a Pi
Raspberry Pi Wishlist
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Suggested Answer
  • Replies 52 replies
  • Answers 4 answers
  • Subscribers 677 subscribers
  • Views 6211 views
  • Users 0 members are here
  • raspberry_pi
Related

Installing Code for PiFace Real Time Clock

fc-element
fc-element over 9 years ago

Dear Element 14 Community.

All my Raspberry Pi devices (RPi 2, RPi Zero, and RPi 3 (planned) are running with the current Raspbian Jessie version. I have successfully installed PiFace Real Time Clock using the PiFace website instructions and GitHub.com software download on a number of RPi 2's and one of my three RPi Zero's.

 

I have recently continued the installations on another two RPi's and cannot continue because after these two lines:

1. chmod +x install-piface-real-time-clock.sh

2. sudo ./install-piface-real-time-clock.sh

 

The following new comments are returned: 1

1.. create new pifacertc init script to load time from PiFace RTC

2. Adding /etc/init.d/pifacertc .

3. install the pifacertc init script

4. enable I2c by using raspi-config

 

As I am a Linux beginner, can someone lead me through (expand) the coding of these lines so I may install PiFace RTC currently and in the future. The changelog on GitHub refers to a revision change but I am not knowledgable enough to understand why the install went through previously by not currently.

 

Thank you very much,

Frank.

  • Sign in to reply
  • Cancel
Parents
  • Former Member
    0 Former Member over 9 years ago

    Hah! Thats just linux being pig headed, run the chmod command using sudo like below. The idea being that if a user doesn't have permission to execute a file then the system isnt going to confirm that files existence either so rather than saying permission denied, it just says file not found etc... It discourages repeat attempts at illegally executing files I think!

     

    sudo chmod +x ./pifacertctest.sh

     

    Ive just completed the steps of downloading using wget, then sudo chmod etc.. to test it out and can confirm it does work using sudo!

     

     

     

     

     

     

     

     

     

    edit (the below is nothing to do with the question, its just some further reading!!)

    --------------------------------------------------------------------------------------------------------------

    The chmod case can be quite confusing, if you are interested here is an explanation why we need to use sudo chmod in this case.

     

    1) If we use chmod +x ./pifacertctest.sh the file becomes executable for the logged in user, on the raspberry pi that user is called "pi"

    2) We need to execute the file using sudo ./pifacertctest.sh using sudo means we are no longer acting as the user "pi" but we are acting as the user "root" (or with root user privileges)

    3) because the pifacertctest.sh has been made executable for the user "pi" and NOT the user "root" when we try and execute it with root priviliges (sudo), the root user doesn't have the executable permission

    4) if we use sudo chmod +x ./pifacertctest.sh the file becomes executable for the root user, this is because we used sudo

    5) Now the root user has permission to execute the file, its now possible to do with sudo ./pifacertctest.sh

    6) if the script didnt need executing with root privileges (sudo) then we wouldnt have to sudo chmod.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • fc-element
    0 fc-element over 9 years ago in reply to Former Member

    Dear Ms. Tozer,

    You were correct about permissions. The command sudo chmod +x ./install pifacertctest.sh apparently worked. I now have in my /home/pi folder
    (in yellow gold)

    install-piface-real-time-clock.sh
    pifacertctest.sh
    (among other files in blue)

    The following is a rundown of the command line staements (Input) and replies (Output) within the teminal.

    Input: ls /dev
    Output: Many files, mostly ram##'s, alot of tty## 's, some vcsa#'s and loop#'s and another dozen.
    (None that look like mcpXXXXXXX's ARMyyyyyyyy's or microprocessor names.)

    Two positive returns:

    Input: ls /dev | grep "i2c"
    Output: i2c-1

    Input: sudo i2cdetect -l
    Output: i2c-1 i2c   20804000.i2c   I2C Adapter

    Several replies showed failures:

    Input: sudo systemctl start pifacertc
    Output: (abreviated) Failed to start service, failed to load, and/or not found

    Input: sudo systemctl start pifacertctest
    Output: (abreviated) Failed to start service, failed to load, and/or not found

    Input: sudo systemctl is-enabled pifacertc
    Output: (abreviated) Failed to start service, failed to load, and/or not found

    Input: sudo systemctl-a
    Output: (abreviated) Failed to start service, failed to load, and/or not found

    cat /proc/cpuinfo

    ARMv7-comp processor rev 7
    2.85
    half .....
    )x41
    7
    0x0
    0xb76
    7
    BCM2708 (this may be an identifier)
    900092    (this may be an identifier)
    0000000070ec5112

    in your screenshot on one of your replies

    Input: /sys/class/i2c-dev/i2c-1/device/new-device
    Output: no reply

    I must tell you that within my /boot/config.txt file, both i2cand spi are enabled
    dtparam=spi=on
    dtparam=i2c_arm=on

    can both be working simultaneosly?

    Thats all I tried to do to up to this point.

    I hope you understand the above and will be glad to do any other experiments
    you put forth. Please ask questions. I believe the pifacertctest will eventually be successful.

    However, at this point, I dont know how the integration of the github.com/piface/PiFace-Real-Time-Clock install can be invoked along with pifacertctest install since the naming between the two is different and the two code listings are inherently incompatible (maybe a poor word choice).  I wondered if you had an overall solution (vision) in mind.

    Sorry for the bother and If you do not have time to continue, please tell me.
    Thanks continually, Frank.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 9 years ago in reply to fc-element

    also, you got this part wrong in what you just posted

     

    in your screenshot on one of your replies

    Input: /sys/class/i2c-dev/i2c-1/device/new-device
    Output: no reply

     

    In the screen grab I effectively did(in a slightly different way):

     

    cat /sys/bus/i2c/devices/1-006f/name

     

    which should furnish you with a result once you have run the install script, the 1-006f part is the i2c address that the rtc clock module should be registered at, the name tells us the name of the module which is mcp7941x which is the microchip identifier on the rtc module.

     

    Right now, Im more concerned with whether the rtc module is being identified rather than trying to debug the "driver" software, there could be many reasons for this so hopefully we can persevere!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • fc-element
    0 fc-element over 9 years ago in reply to Former Member

    Dear ms. tozer,

     

    your messages were very clear. Ran all you asked and (in my own naïve opinion) quite negative results.

     

    1,) Powered off RPi0.  Disconnected Ethernet module (enc28j60) and connections. I have WiPi operational on hub attached to RPi0.  Disconnected battery. Removed RTC module.  Removed Battery and verified output at 3.27 - 3.29 V.  Returned Battery and RTC module. Installed battery (plus side up) and affixed pins to holes snuglt and securely.  Rebooted.  At terminal, typed: sudo hwclock -r  (No date/time returned.)  Return:  hwclock: cannot access the hardware clock via any known method. hwclock: Use the debug option to see details of our search for any access method.  My try: Typed: sudo hwclock --debug  Return: hwclock from util-linux 2.25.2  hwclock: cannot open /dev/rtc : no such file or directory. No useful clock interface found  hwclock: cannot access the hardware clock via any known method.  My 2nd Try: (searched file manager). There is no file or directory at under: /dev  named  rtc.

     

    2,) Typed: sudo apt-get install i2c-tools  Return: Reading packing lists ..Done  Building dependency tree Reading state information . . Done  i2c is already the newest version 0 upgraded 0 newly installed 0 to remove 0 upgraded  Typed: sudo i2cdetect -y 0  Return: Error: could not open file '/dev/i2c-0 or 'dev/i2c/0' No such file or directory Typed: sudo i2cdetect -y 1  Return: A matrix with 0 through 9 a b c d e f (across) 00:  through 70 9down) " 6f " at  60:  f all others -- .

     

    As requested in your next post-  Typed:  cat /sys/bus/i2c/devices/1-006f/name  Return: no such file or directory.

     

    In my pi directory, I still have the two files:

    install-piface-real-time-clock.sh

    pifacertctest.sh

     

    I'm my humble opinion I don't know how to manage the GitHub PiFace-Real-Time-Clock and pifacertctest .sh  operations.

    Your comments, thanks. Frank

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • rew
    0 rew over 9 years ago in reply to fc-element

    Hi Frank,

    The good news is, your 'pi is communicating with the RTC. The i2c-detect tool asked: "Is there anybody at 0x6F?" and the chip answered: "Yes, I'm here, go ahead what do you want?" (the i2c-detect tool then turns around and does nothing. Quite mean towards the I2C chip that was willing to help... :-) ).

     

    You can follow my instructions at: Rtc - BitWizard WIKI

     

    You've gotten the I2C bus up-and-running, so some stuff is no longer necessary. Start with:

    modprobe i2c:mcp7941x

    echo mcp7941x 0x6f > /sys/class/i2c-dev/i2c-1/device/new_device # For rev2 RPi

    It seems that whomever made YOUR rtc was trying to do too much at once, possibly with some changes in raspbian that the automatic script wasn't prepared for....

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • fc-element
    0 fc-element over 9 years ago in reply to Former Member

    Ms Tozer

    Considering the results under your (above post) direction, the RTC is not identified. I have about a dozen RTC modules. I wish I can teleport one to you. I must say that I have installed the identical RTC 's on three individual RTC 2 devices running Wheezy using the original Raspberry Pi tutorial (sift through the above posts) which is nothing like the procedure I have been using on these RPi 0 's. As usual please tell me if you still have time to look at this. Also, as a sideline, I have no idea of this forum (and maybe I should start another post in General Discussion) but Are respondents generally from a worldwide environment? I realize you cannot answer for everyone. You certainly don't have to answer ( I am just curious) in particular, as I gathered from you website, are you a UK robotics person, just responding to me, or are you a member of element14 - farnell - Newark and now I think MCMelectronics. Your continued support is highly appreciated. Frank.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Robert Peter Oakes
    0 Robert Peter Oakes over 9 years ago in reply to fc-element

    We're all here helping for free, some are Top Members, others are regular members, but we all love to help out, the odd response may be from a Newark/E14 staff member but 99% are just regular community members like

     

    Me, I live in Canada but the help comes from all over the world

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • rew
    0 rew over 9 years ago in reply to Robert Peter Oakes

    I installed an MCP79410 on my raspberry. I then did the i2cdetect that was suggested. I get:

    tenansix:/home/wolff# /usr/sbin/i2cdetect -y 1

         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f

    00:          -- -- -- -- -- -- -- -- -- -- -- -- --

    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

    40: -- -- -- -- -- -- -- -- -- -- 4a -- -- -- -- --

    50: -- -- -- -- -- -- -- 57 -- -- -- -- -- -- -- --

    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 6f

    70: -- -- -- -- -- -- -- --                        

    tenansix:/home/wolff#

    "tenansix" is the name of this raspberry pi. The "4A" is another I2C device that lives on the I2C Bus.

    The 6F is the "battery backed up RAM" part of the MCP-chip. The 57 is the actual RTC.

     

    If you got "??" there (in the row "50" under the heading "7"), that means that your kernel driver has already claimed that device.

    (I'm removing the board-with-RTC now, I have to be working on a different pi-addon-board).

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • fc-element
    0 fc-element over 9 years ago in reply to rew

    Dear Mr Wolff,

    Just got your message but I'm at a library. Trying to follow Ms Tozers instructions but I appreciate the great insight you have concerning RTC. I see you have a follow up reply which I will respond to after I get these instructions in line. I have got a couple questions 1. what does bcm2708 and mcp7941x refer to specifically and do these pertain to a RPi Zero (is it the same for a RPi Zero version 2). You mentioned rev 2 RPi  and rev 1 RPi,  are these pertaining to a RPi Model 2 rev 1 and 2 or RPi zero version 1 and 2 or does it matter? My present concern is with an RPi Zero ver 1 but I will install an RPi Zero ver 2 in the future after resolving problems. I also have an RPi 3 which I want to install an RTC. Sorry for the questions but I'm getting more involved with these devices. Finally, the Rtc - BitWizard WIKI, is that a forum specifically tor RTC's ? Finally the end of this forum states the Source: http://www.element14.com/community/message/63885. This is very difficult to understand (I don't think I need to know it ) but is this forum separate then the one I'm on ?

    Your support is well taken.

    Thanks, Frank

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • fc-element
    0 fc-element over 9 years ago in reply to rew

    Again so many thanks , my immediate reaction is that I don't have a header describing my RTC (first line). Also, based on what you said, "my kernel driver has already claimed that device." At this point I don't know which kernel (is it the Linux kernel being used by the distrubution I am running ? and who claimed this device "myself" ?

    Great ! What do you expect the matrix will look like if I get the RTC installed properly, a first line descriptor and another two-digit code somewhere in the matrix ?

    Many thanks. This gives me confidence that I'm getting closer to installing these devices.  I'll get to it in the very near future.

    Frank.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • rew
    0 rew over 9 years ago in reply to fc-element

    The "rev 1" and "rev 2" versions refer to raspberry pi 1!!!

     

    The processor on the raspberri pi's (all of them) is: BCM2835 (raspberry pi 1, zero), BCM2836 (Raspberry pi 2, before V1.2) or BCM2837 (raspberry pi 2 from V1.2 and rasbperry pi 3).

     

    The BCM2835, back when it was new was treated as a BCM2708, which, from a software viewpoint was nearly identical. So the I2C module for BCM2835 was called i2c_bcm2708 or something like that.

     

    MCP7941x is the name of our RTC chips.

     

    My WIKI documents mostly MY boards (the boards BitWIzard sells). But in this case it also applies to you where you didn't buy our product but from the competition. Boo!!! :-)

     

    You published a "something at 0x6F" scan. That means that your PI is talking to your RTC.

    Next step is to insert the kernel modules that can talk to your RTC. I'm thinking this has already happend  because you didn't see anything at 0x57. On the other hand, I THINK it should say "??" when you have the driver, and you didn't say anything about that. Please double check.

     

    Then the "echo" command tells the driver: "There is a chip you can handle at address .... go ahead and look". For some hardware, just trying to fiddle with the chip and see if it reacts as you expect is "safe" If another chip happens to be there, nothing bad happens.

     

    Consider the "I2C bus" like a street. You can walk up to "number 57", ring the bell and ask: "Are you an RTC?". However, at some addresses there are crazy people who don't like being asked any questions. They get out the shotgun if you don't behave exactly as they expect. 

     

    So... in some cases (e.g. on USB) it is perfectly fine to ask the "who are you" question. But on I2C it's sometimes dangerous because of those crazy guys. So in this case, on I2C, you need to tell the system: "it's ok to go and ask on nr 57 if they are an RTC!"

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • fc-element
    0 fc-element over 9 years ago in reply to rew

    Again thanks for all this useful information.

    I ran all you had asked me and I got some positive and negative results.

    I ryped:

    sudo nano  /etc/modprobe.d/raspi-blacklist,conf and it was empty. I closed it and

    Typed:

    sudo modprobe i2c-bcm2708

    Typed:

    sudo -s

    got into root prompt (I never went here before)

    root@raspberrypi: /home/pi

    typed the following three lines:

    modprobe i2c-dev

    modprobe i2c:mcp7941x

    echo mcp7941x 0x6f > /sys/class/i2c-dev/i2c-1/device/new_device

    Return: Permission Denied

    exited root

    Typed:

    hwclock -w

    Typed: sudo hwclock -w

    Return:

    no such device

    Typed: sudo hwclock -w  (again)

    Return:

    no such device

    Typed:

    sudo hwclock --debug

    Return:

    cannot access the hardware clock by an known method

     

    I have no /dev/rtc directory

     

    I installed i2c-tools

    Typed:

    sudo i2cdetect -y 1

    Return:

    got the same matrix as before with no header information.

    6f at ( 60: f ) but again all other locations gave - - (no ??)

     

    I was >>successful<< in getting a mcp7941x return with:

    cat  /sys/class/i2c-dev/i2c-1/device/1-006f/name

    or going to that directory and typing ls and then  cat name

    I never got a positive response before.

     

    I guess that's all I did.

    I hope I gave you some further information. It appears that the RTC is being identified but not completely.

     

    The command

    echo mcp7941x 0x6f > /sys/class/i2c-dev/i2c-1/device/new_device

    permission denied disturbed me

    so I added a sudo in front of echo but it returned with something like "bad command".

    I need to get the correct text allow permission.

     

    Your consideration is of utmost value,

    thanks, Frank.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Reply
  • fc-element
    0 fc-element over 9 years ago in reply to rew

    Again thanks for all this useful information.

    I ran all you had asked me and I got some positive and negative results.

    I ryped:

    sudo nano  /etc/modprobe.d/raspi-blacklist,conf and it was empty. I closed it and

    Typed:

    sudo modprobe i2c-bcm2708

    Typed:

    sudo -s

    got into root prompt (I never went here before)

    root@raspberrypi: /home/pi

    typed the following three lines:

    modprobe i2c-dev

    modprobe i2c:mcp7941x

    echo mcp7941x 0x6f > /sys/class/i2c-dev/i2c-1/device/new_device

    Return: Permission Denied

    exited root

    Typed:

    hwclock -w

    Typed: sudo hwclock -w

    Return:

    no such device

    Typed: sudo hwclock -w  (again)

    Return:

    no such device

    Typed:

    sudo hwclock --debug

    Return:

    cannot access the hardware clock by an known method

     

    I have no /dev/rtc directory

     

    I installed i2c-tools

    Typed:

    sudo i2cdetect -y 1

    Return:

    got the same matrix as before with no header information.

    6f at ( 60: f ) but again all other locations gave - - (no ??)

     

    I was >>successful<< in getting a mcp7941x return with:

    cat  /sys/class/i2c-dev/i2c-1/device/1-006f/name

    or going to that directory and typing ls and then  cat name

    I never got a positive response before.

     

    I guess that's all I did.

    I hope I gave you some further information. It appears that the RTC is being identified but not completely.

     

    The command

    echo mcp7941x 0x6f > /sys/class/i2c-dev/i2c-1/device/new_device

    permission denied disturbed me

    so I added a sudo in front of echo but it returned with something like "bad command".

    I need to get the correct text allow permission.

     

    Your consideration is of utmost value,

    thanks, Frank.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube