DexterInd / DexterInd/GrovePi

GrovePi disconnect from I2C on kernel 4.9.35

Open
#360 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
494
Forks
472
PR merge metrics
No merged PRs in 30d

Description

Recently updated some devices using GrovePi+ this moved them to the new 4.9.35 kernel. I also then pulled down the latest of this repo and reinstalled / flashed the latest firmware 1.2.7 to the GrovePi.

Everything appears to work normally. I can see the Grove pi via i2cdetect -y 1 and also get data from my sensors attached. After some time it no longer appears via i2cdetect and I get errors on reads.

I've found I can bring this back by cycling gpio pin 10 (CE0) then the GrovePi shows back up but some time later it will happen again.

Here is some hopefully relevant info.

Running dmesg I see:
i2c-bcm2835 3f804000.i2c: i2c transfer timed out

Running lsmod:

Module                  Size  Used by
binfmt_misc             7988  1
bnep                   12051  2
cfg80211              543027  0
evdev                  12423  1
snd_usb_audio         147900  0
snd_hwdep               6688  1 snd_usb_audio
snd_usbmidi_lib        22487  1 snd_usb_audio
snd_rawmidi            23790  1 snd_usbmidi_lib
snd_seq_device          5504  1 snd_rawmidi
snd_bcm2835            24427  0
snd_pcm                98501  2 snd_usb_audio,snd_bcm2835
snd_timer              23968  1 snd_pcm
snd                    70032  8 snd_hwdep,snd_usb_audio,snd_timer,snd_rawmidi,sn               d_usbmidi_lib,snd_seq_device,snd_bcm2835,snd_pcm
bcm2835_gpiomem         3940  0
i2c_bcm2835             7167  0
btusb                  30139  0
btrtl                   5500  1 btusb
btintel                10199  1 btusb
btbcm                   7916  1 btusb
bluetooth             365511  26 btrtl,btintel,bnep,btbcm,btusb
rfkill                 20851  3 bluetooth,cfg80211
uio_pdrv_genirq         3923  0
fixed                   3285  0
uio                    10204  1 uio_pdrv_genirq
i2c_dev                 6913  0
ipv6                  408971  32

I don't see any other info in logs around i2c but maybe I'm just not looking in the right place. One other thing I noticed was initially after upgrade both i2c_bcm2835 and the older i2c_bcm2708 were loaded as we had an entry for i2c-bcm2708 in /etc/modules which is how it was working in 4.1.19. Even after removing this and rebooting the issue remains. Let me know any other info / steps I can take to further identify this issue.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the reported dmesg timeout and compare the loaded i2c_bcm2835 and i2c_bcm2708 modules, including the /etc/modules entry. Reproduce the disconnect with i2cdetect and sensor reads after the system has been running, then verify that cycling GPIO pin 10 restores it. Done means identifying a repeatable cause and confirming a durable fix across reboots.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, raspberry-pi
Domain
embedded-iot, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.