GrovePi disconnect from I2C on kernel 4.9.35
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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