QUERY · ISSUE
[RP2] machine.soft_reset() hangs when i2s is not deinitialized
bug
Checks
-
I agree to follow the MicroPython Code of Conduct to ensure a safe and respectful space for everyone.
-
I've searched for existing issues matching this bug, and didn't find any.
Port, board and/or hardware
RPI_PICO
MicroPython version
MicroPython v1.22.2 on 2024-02-22; Raspberry Pi Pico with RP2040
Reproduction
- Initialize I2S device:
from machine import I2S
from machine import Pin
audio_out = I2S(0,
sck=Pin(0), ws=Pin(1), sd=(2),
mode=I2S.TX,
bits=16,
format=I2S.MONO,
rate=44100,
ibuf=20000)
- Call
machine.soft_reset() - Repeat 1, call
audio_out.deinit()and no. 2 again
Expected behaviour
machine.soft_reset() resets machine
Observed behaviour
device hangs, requiring hardware reset or reconnecting USB
Additional Information
Verified on latest git commit and official release 1.22.2. This issue is pin-independent.
CANDIDATE · PULL REQUEST
ports/rp2: Disable correct IRQ for PIO1.
port-rp2
Caught this while monkeying around trying to get some whacky custom C++ module to not hardlock on soft reset.