Skip to content

Fixed I2C Status Bit #6

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 20, 2019
Merged

Fixed I2C Status Bit #6

merged 1 commit into from
Jul 20, 2019

Conversation

romanakozak
Copy link
Contributor

Memory integrity/error occurs when I2C status bit 2 is 0x01. Not when I2C status bit 0 is 0x04 (as implemented by Adafruit).
See page 14 on the datasheet: https://sensing.honeywell.com/honeywell-sensing-micropressure-board-mount-pressure-mpr-series-datasheet-32332628.pdf

print(mpr.pressure)
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python3.7/site-packages/adafruit_mprls.py", line 99, in pressure
return self._read_data()
File "/usr/local/lib/python3.7/site-packages/adafruit_mprls.py", line 127, in _read_data
raise RuntimeError("Integrity failure")
RuntimeError: Integrity failure

Memory integrity/error occurs when I2C status bit 2 is 0x01. Not when I2C status bit 0 is 0x04 (as implemented by Adafruit).
See page 14 on the datasheet: https://sensing.honeywell.com/honeywell-sensing-micropressure-board-mount-pressure-mpr-series-datasheet-32332628.pdf

>>> print(mpr.pressure)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.7/site-packages/adafruit_mprls.py", line 99, in pressure
    return self._read_data()
  File "/usr/local/lib/python3.7/site-packages/adafruit_mprls.py", line 127, in _read_data
    raise RuntimeError("Integrity failure")
RuntimeError: Integrity failure
@ladyada ladyada merged commit 061c040 into adafruit:master Jul 20, 2019
@ladyada
Copy link
Member

ladyada commented Jul 20, 2019

thanks!

adafruit-adabot added a commit to adafruit/Adafruit_CircuitPython_Bundle that referenced this pull request Sep 17, 2019
Updating https://github.com/adafruit/Adafruit_CircuitPython_ADXL34x to 1.10.3 from 1.10.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_ADXL34x#9 from hartzell/patch-2

Updating https://github.com/adafruit/Adafruit_CircuitPython_BME280 to 2.3.2 from 2.3.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_BME280#27 from ncguk/patch-1

Updating https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground to 2.1.4 from 2.1.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_CircuitPlayground#69 from caternuson/iss68

Updating https://github.com/adafruit/Adafruit_CircuitPython_DS18X20 to 1.2.0 from 1.1.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_DS18X20#12 from LBertrandDC/asynchronous-functions

Updating https://github.com/adafruit/Adafruit_CircuitPython_DS2413 to 1.1.3 from 1.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_DS2413#9 from dherrada/master

Updating https://github.com/adafruit/Adafruit_CircuitPython_GPS to 3.4.0 from 3.3.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_GPS#34 from dherrada/master
  > Merge pull request adafruit/Adafruit_CircuitPython_GPS#31 from dherrada/master
  > Merge branch 'master' into master

Updating https://github.com/adafruit/Adafruit_CircuitPython_HTU21D to 0.9.0 from 0.8.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_HTU21D#5 from dherrada/master

Updating https://github.com/adafruit/Adafruit_CircuitPython_IRRemote to 3.4.0 from 3.3.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_IRRemote#27 from tannewt/remove_debug
  > Merge pull request adafruit/Adafruit_CircuitPython_IRRemote#25 from makermelissa/master

Updating https://github.com/adafruit/Adafruit_CircuitPython_MCP3xxx to 1.1.0 from 1.0.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_MCP3xxx#14 from brentru/update-examples

Updating https://github.com/adafruit/Adafruit_CircuitPython_MPR121 to 2.0.4 from 2.0.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_MPR121#20 from ntoll/master

Updating https://github.com/adafruit/Adafruit_CircuitPython_MPRLS to 1.1.0 from 1.0.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_MPRLS#6 from romanakozak/patch-1

Updating https://github.com/adafruit/Adafruit_CircuitPython_MSA301 to 1.1.0 from 1.0.0:
  > added tap detection. Couldn't make latching work

Updating https://github.com/adafruit/Adafruit_CircuitPython_Nunchuk to 0.1.1 from 0.1.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_Nunchuk#5 from ntoll/master

Updating https://github.com/adafruit/Adafruit_CircuitPython_PCT2075 to 1.0.1 from 1.0.0:
  > fixed typos for (yet to be used) fault queue length

Updating https://github.com/adafruit/Adafruit_CircuitPython_SHT31D to 2.1.0 from 2.0.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_SHT31D#11 from WoefulDerelict/periodic_data_acquisition
  > Merge pull request adafruit/Adafruit_CircuitPython_SHT31D#10 from WoefulDerelict/temperature_docstring_fix

Updating https://github.com/adafruit/Adafruit_CircuitPython_SSD1306 to 2.6.4 from 2.6.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_SSD1306#29 from adafruit/tannewt-patch-1

Updating https://github.com/adafruit/Adafruit_CircuitPython_Thermal_Printer to 1.1.3 from 1.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_Thermal_Printer#10 from caternuson/README_update

Updating https://github.com/adafruit/Adafruit_CircuitPython_TLC59711 to 1.1.3 from 1.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_TLC59711#6 from demophoon/add-blinka-to-requirements-txt

Updating https://github.com/adafruit/Adafruit_CircuitPython_AVRprog to 1.2.0 from 1.1.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_AVRprog#10 from aaronaverill/master

Updating https://github.com/adafruit/Adafruit_CircuitPython_FancyLED to 1.3.1 from 1.3.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_FancyLED#8 from schlafa/patch-1

Updating https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad to 0.9.2 from 0.9.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_ImageLoad#21 from fionawhim/rle-bmp
  > Merge pull request adafruit/Adafruit_CircuitPython_ImageLoad#19 from cogliano/patch-2
  > Merge pull request adafruit/Adafruit_CircuitPython_ImageLoad#18 from cogliano/patch-1
  > Merge pull request adafruit/Adafruit_CircuitPython_ImageLoad#17 from deshipu/master
  > Merge pull request adafruit/Adafruit_CircuitPython_ImageLoad#15 from tannewt/fix_one_bit

Updating https://github.com/adafruit/Adafruit_CircuitPython_miniesptool to 0.1.5 from 0.1.4:
  > Merge pull request adafruit/Adafruit_CircuitPython_miniesptool#11 from dherrada/master

Updating https://github.com/adafruit/Adafruit_CircuitPython_MotorKit to 1.3.1 from 1.3.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_MotorKit#20 from adario7/master

Updating https://github.com/adafruit/Adafruit_CircuitPython_Requests to 1.1.3 from 1.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_Requests#11 from jerryneedell/jerryn_bytes

Updating https://github.com/adafruit/Adafruit_CircuitPython_RTTTL to 2.3.0 from 2.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_RTTTL#14 from hexthat/patch-1

Updating https://github.com/adafruit/Adafruit_CircuitPython_SimpleIO to 2.0.0 from 1.2.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_SimpleIO#46 from jepler/issue45
@caternuson
Copy link
Contributor

Was there bit vs. byte confusion here? self._buffer is an array of bytes from the I2C transaction. For a read operation, the first byte returned is status. And it is bit 2 of this that indicates integrity. So self._buffer[0] is the first byte and the logical &'ing with 0x04 checks for bit 2.

Because...
https://forums.adafruit.com/viewtopic.php?f=60&t=157025
I get the same behavior with 1.1.0 release. Reverting to 1.0.3 runs fine. I think the original code was OK.

mprls

@ladyada
Copy link
Member

ladyada commented Oct 2, 2019

@caternuson could be, please revert the commit

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants