Comments (5)
Thanks, @ericbarch for investigating this. It was hard on our side as we lack the specific hardware. Update us if we can help in any way.
from balena-raspberrypi.
Hi,
can you write down a testcase for this issue please?
from balena-raspberrypi.
Of course 😀
We have been testing against an Atlas Scientific RTD module: https://www.atlas-scientific.com/product_pages/circuits/ezo_rtd.html connected to a Raspberry Pi 3.
Testing under 2.9.7+rev1 (same result w/ 2.7.4+):
balena run --rm -it --privileged resin/armv7hf-debian:stretch /bin/bash
apt update && apt install -f i2c-tools
root@7c4a31740ab4:/# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@7c4a31740ab4:/# i2cget -y 1 104 0 b
0xff
Testing under 2.7.2+rev1:
docker run --rm -it --privileged resin/armv7hf-debian:stretch /bin/bash
apt update && apt install -f i2c-tools
root@3b5b9cf66681:/# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@3b5b9cf66681:/# i2cget -y 1 104 0 b
0x05
Note that this first register (address 0) is the device identification register. It should always return 0x05.
from balena-raspberrypi.
After performing some additional testing, it appears as though the new releases only cause issues when communicating with our Atlas Scientific I2C devices. We also tested against a BME280 sensor and did not notice any issues when upgrading to the latest resinOS.
I grabbed a few captures via our logic analyzer of the Atlas Scientific transactions.
Note that the top (BAD) test was performed on resinOS 2.12.3+rev1. The bottom (GOOD) test was performed on resinOS 2.7.2+rev1.
It appears as though the newer resinOS builds are attempting to perform a repeated start. The Atlas Scientific module we are using does not support repeated start.
In fact, if you look closely at the (BAD) analog waveforms (below the digital waveforms), you can see a slight voltage increase in SCL after SDA goes high (indicating that the Pi is attempting to perform a repeated start). Because the change is ~150mV, this would seem to indicate that the slave device is holding the clock low to prevent the repeated start.
Is it possible the underlying I2C drivers have changed to perform repeated starts? And if so, is there any way to prevent this?
from balena-raspberrypi.
We've now tracked this issue down to a change in the official RPi kernel. It appears that when the bcm2835 I2C module was made the default (with repeated starts enabled), it broke compatibility with our Atlas Scientific board. This change can be found here:
Will continue to investigate on our own. But closing as this is not a resinOS specific issue.
from balena-raspberrypi.
Related Issues (20)
- Upgraded firmware HOT 3
- User wants support for Revoltion Pi Connect S and SE HOT 2
- Build error - boot.scr HOT 3
- build error: do_overlays() HOT 6
- Build error: cargo with git HOT 1
- RS-485 not working with revpi-connect-4 (new device) HOT 2
- Add new machine: Strato Pi Base HOT 1
- linux-firmware: Include MT7610U and MT7612U firmware HOT 2
- Using Sony's eLinux embedder for Flutter with Balena
- Custom Waveshare overlay
- raspberry pi 0 fails persistent logging test
- raspberry pi 0 fails multicontainer download test HOT 3
- raspberry pi 0 fails to create files in a volume during hup suite HOT 1
- revpi-core-3 in rig fails to flash
- gpio-poweroff.dtbo sometimes missing from dtbo list HOT 4
- User requests balenaOS v2.106.4 for the Raspberry Pi Zero W2 HOT 2
- [fincm3] Often AP creation failures after v2.83.21+rev1 - affects testbot rig HOT 1
- Missing udev rules for lm75 temperature sensor loaded via dtoverlay HOT 1
- Cloud builders cannot build Rust projects anymore. Cargo network errors. HOT 1
- Missing imx708 overlay HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from balena-raspberrypi.