Skip to content

metro m7 + neokey 1x4s = OSError: [Errno 5] Input/output error #7827

@jepler

Description

@jepler

CircuitPython version

Adafruit CircuitPython 8.1.0-beta.1-17-gb011468251-dirty on 2023-04-03; Metro MIMXRT1011 with IMXRT1011DAE5A
Board ID:metro_m7_1011

Code/REPL

import board
import time
from adafruit_neokey.neokey1x4 import NeoKey1x4
keys = NeoKey1x4(board.STEMMA_I2C())

while True:
    print(f"{keys.digital_read_bulk(0xff):08b}")
    time.sleep(.01)

Behavior

The code runs for awhile (prints lines like "11110000" if no keys are pressed, but eventually (after way under 1 minute in my tests; faster if the sleep is removed):

Traceback (most recent call last):
  File "code.py", line 6, in <module>
  File "adafruit_seesaw/seesaw.py", line 216, in digital_read_bulk
  File "adafruit_seesaw/seesaw.py", line 466, in read
OSError: [Errno 5] Input/output error

After that, communication with the neokey is impossible until the neokey is power cycled (just resetting the m7 with the reset button does not fix it):

Traceback (most recent call last):
  File "code.py", line 1, in <module>
  File "code_synth.py", line 11, in <module>
RuntimeError: No pull up found on SDA or SCL; check your wiring

Description

Maybe a problem with clock stretching on this mcu?

Additional information

The same exact neokey 1x4 works fine on an rp2040 feather with the same code.

Metadata

Metadata

Assignees

Labels

bugmimxrt10xxiMX RT based boards such as Teensy 4.x

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions