Skip to content

rp2: 1.22.0, 1.22.1: Lockup on machine.I2S initialization #13380

Closed
@roman-yepishev

Description

@roman-yepishev

STR:

  1. Flash Raspberry Pi Pico W with RPI_PICO_W-20231227-v1.22.0.uf2 or RPI_PICO_W-20240105-v1.22.1.uf2:

    MicroPython v1.22.1 on 2024-01-05; Raspberry Pi Pico W with RP2040
    
  2. Connect over USB serial console (e.g. with mpremote).

  3. Execute the following (no need to actually connect any I2S device):

    import machine
    i2s = machine.I2S(0, sck=machine.Pin(13), ws=machine.Pin(14),
                      sd=machine.Pin(15), mode=machine.I2S.TX,
                      bits=16, format=machine.I2S.MONO, rate=8000, ibuf=2000)
    

Expected results:

  • I2S is initialized and the object is returned.

Actual results:

  • The board stops transmitting data over USB serial console and does not return from that call (i.e. if I attempt to play audio afterwards as part of main.py, there is no output).

Re-flashing RPI_PICO_W-20231005-v1.21.0.uf2 allows the use of I2S on the same pins without lockup:

MicroPython v1.21.0 on 2023-10-06; Raspberry Pi Pico W with RP2040
Type "help()" for more information.
>>> import machine
>>> i2s = machine.I2S(0, sck=machine.Pin(13), ws=machine.Pin(14),
...                   sd=machine.Pin(15), mode=machine.I2S.TX,
...                               bits=16, format=machine.I2S.MONO, rate=8000, ibuf=2000)
>>> help(i2s)
object I2S(id=0,
...

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions