Skip to content

STM: displayio interfering with sdio? Also sdio clock speed not settable #7404

Open
@dhalbert

Description

@dhalbert

CircuitPython version

8.0.0-beta.6

Code/REPL

import board
import sdioio
import storage
import time
import displayio
import adafruit_displayio_sh1107

i2c = board.I2C()
displayio.release_displays()
display_bus = displayio.I2CDisplay(i2c, device_address=0x3C)
display = adafruit_displayio_sh1107.SH1107(display_bus, width=128, height=64)

sdcard = sdioio.SDCard(
    clock=board.SDIO_CLOCK,
    command=board.SDIO_COMMAND,
    data=board.SDIO_DATA,
    frequency=2500000)
print(f"{sdcard.frequency=}")

vfs = storage.VfsFat(sdcard)

storage.mount(vfs, "/sd")

with open( "/sd/test.txt", "w" ) as f:
    f.write( "year, month, day, batch\n" )
    f.write( "2022, 12, 30, 0\n" )

with open("/sd/test.txt", "r") as f:
    print("Printing lines in file:")
    print()
    line = f.readline()
    while line != '':
        print(line)
        line = f.readline()
        print()

Behavior

OSError: [Errno 5] Input/output error

If the display = line is commented out, it works.

Description

No response

Additional information

Reported in https://forums.adafruit.com/viewtopic.php?p=954144
Seems related to #6082, which does not use displayio.

Another odd thing is that setting frequency= seems to have no effect, as noted by the print() in the test program.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions