Pi Zero 2W + Notecarrier-Pi HAT — Failed to reset Notecard on Raspbian Trixie

  1. SKU: NOTE-WBNAN

  2. OS: Raspbian Trixie 32-bit

    here are the All settings in our firmware/config.txt based on our debugging searches.

    [all]
    enable_uart=0
    dtoverlay=imx219
    dtoverlay=disable-bt
    dtparam=i2c_arm=on,i2c_arm_baudrate=100000
    dtoverlay=i2c-gpio,bus=3,i2c_gpio_sda=2,i2c_gpio_scl=3

    The notecard works fine via USB playground but we cannot get past the reset

    here is our script with the UID removed

    test script used:
    import notecard
    from notecard import hub, note
    from periphery import I2C

    productUID = “”
    port = I2C(“/dev/i2c-1”)
    nCard = notecard.OpenI2C(port, 0, 0, debug=True)

    rsp = hub.set(nCard, product=productUID, mode=“continuous”)
    print(“hub.set:”, rsp)

    rsp = note.add(nCard, file=“test.qo”, body={“test”: “hello from pi”})
    print(“note.add:”, rsp)

    script return:
    Resetting Notecard I2C communications.
    [Errno 110] I2C transfer: Connection timed out
    Notecard not responding to newline during reset.
    Retrying reset…
    [Errno 110] I2C transfer: Connection timed out
    [Errno 110] I2C transfer: Connection timed out
    [Errno 110] I2C transfer: Connection timed out
    [Errno 110] I2C transfer: Connection timed out
    [Errno 110] I2C transfer: Connection timed out
    [Errno 110] I2C transfer: Connection timed out
    [Errno 110] I2C transfer: Connection timed out
    [Errno 110] I2C transfer: Connection timed out
    [Errno 110] I2C transfer: Connection timed out
    Traceback (most recent call last):
    File “/home/rpi_rem-admin/scripts/test_notecard.py”, line 7, in
    nCard = notecard.OpenI2C(port, 0, 0, debug=True)
    File “/home/rpi_rem-admin/.local/lib/python3.13/site-packages/notecard/notecard.py”, line 925, in init
    self.Reset()
    ~~~~~~~~~~^^
    File “/home/rpi_rem-admin/.local/lib/python3.13/site-packages/notecard/notecard.py”, line 833, in Reset
    raise Exception(‘Failed to reset Notecard.’)
    Exception: Failed to reset Notecard.

Hi @marcus_nerdicus and welcome to the Blues community!

I don’t think I would’ve spotted this without some help from AI, but it appears these two lines fight for the same physical pins:

dtparam=i2c_arm=on,i2c_arm_baudrate=100000          ← hardware I2C on GPIO 2/3 (/dev/i2c-1)
dtoverlay=i2c-gpio,bus=3,i2c_gpio_sda=2,i2c_gpio_scl=3   ← bit-banged I2C on the SAME GPIO 2/3

On the Pi Zero 2W, GPIO 2 = SDA1 and GPIO 3 = SCL1. The i2c-gpio overlay grabs those pins for bus 3, which prevents the hardware I2C controller from driving them.

So…it looks like the simplest fix is to drop the i2c-gpio overlay and just use hardware I2C.

Hope that helps!

Rob

Rob,

Thank you for the quick response. Very much appreciated.

I removed the i2c-gpio overlay as suggested.

Config is now clean with just dtparam=i2c_arm=on,i2c_arm_baudrate=100000.

However, back to the … Notecard not responding to newline and Errno 110 (Connection timed out) on /dev/i2c-1 — same error as before. This appears to be the Pi Zero hardware I2C clock-stretching issue. Tried my test script with and without sudo — same result.

What is the recommended fix for clock-stretching with Notecarrier-Pi HAT on Pi Zero 2W running Trixie?

Thanks again,
Mark