Skip to content

ESP32-S3 I2C timeout with seesaw #9535

Closed
@icebreaker87

Description

@icebreaker87

CircuitPython version

Adafruit CircuitPython 9.1.1 on 2024-07-22; Adafruit Feather ESP32S3 No PSRAM with ESP32S3

Code/REPL

import time
import busio
import board
from micropython import const
from adafruit_seesaw.seesaw import Seesaw

BUTTON_X = const(6)
BUTTON_Y = const(2)
BUTTON_A = const(5)
BUTTON_B = const(1)
BUTTON_SELECT = const(0)
BUTTON_START = const(16)
button_mask = const(
    (1 << BUTTON_X)
    | (1 << BUTTON_Y)
    | (1 << BUTTON_A)
    | (1 << BUTTON_B)
    | (1 << BUTTON_SELECT)
    | (1 << BUTTON_START)
)

i2c_bus = board.STEMMA_I2C()
seesaw = Seesaw(i2c_bus, addr=0x50)
seesaw.pin_mode_bulk(button_mask, seesaw.INPUT_PULLUP)

Behavior

Traceback (most recent call last):
File "", line 33, in
File "adafruit_seesaw/seesaw.py", line 342, in pin_mode_bulk
File "adafruit_seesaw/seesaw.py", line 329, in _pin_mode_bulk_x
File "adafruit_seesaw/seesaw.py", line 520, in write
OSError: [Errno 116] ETIMEDOUT

Description

This is the example code from adafruits gamepad qt guide. Get this everytime I try to run the code. After multiple tries, there is an error :
Traceback (most recent call last):
File "", line 27, in
RuntimeError: No pull up found on SDA or SCL; check your wiring

Bus this goes away if you unplug the board and power back on. On RP2040 based boards, it works out of the box (same CP version).
If I use the same hardware but with arduino code (also from gamepad qt guide), it works always.

Additional information

No response

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions