← index #9003Issue #6918
Off-topic · high · value 2.711
QUERY · ISSUE

Pico W ENOMEM error when (re)using PIO (rp2_pio_init, CYW43)

openby scrussopened 2022-08-01updated 2026-03-12
bugport-rp2

First reported here: Pico W ENOMEM error when using PIO - Raspberry Pi Forums.

A program that uses PIO (such as the example code: micropython/pio_1hz.py at master · micropython/micropython) can't be reliably stopped and restarted on a Pico W, while it can on a Pico.

Expected result: being able to stop and start PIO example at will

Actual result: after a small number of attempts OSError: [Errno 12] ENOMEM

The cause appears to be identified as PIO.remove_program() not being usable when the CYW43 driver is loaded, as the CYW43 itself is running a PIO program.

Indeed, comments inside rp2_pio_init() suggest this may be an issue:

void rp2_pio_init(void) {
    // Reset all PIO instruction memory.
    #if MICROPY_PY_NETWORK_CYW43
    // TODO: cannot reset PIO memory when CYW43 driver is enabled and active
    // because it uses a PIO for the bus interface.

Version:

MicroPython v1.19.1 on 2022-07-29; Raspberry Pi Pico W with RP2040
rp2-pico-w-20220729-unstable-v1.19.1-223-g963e599ec.uf2
CANDIDATE · ISSUE

rp2 asm_pio : no module named 'array'

closedby fragmuffinopened 2021-02-17updated 2021-02-17

Error when running demo code in ports/rp2/README.md : PIO Blinky

MPY: soft reboot
MicroPython v1.14 on 2021-02-03; Raspberry Pi Pico with RP2040
Type "help()" for more information.
>>> import rp2
>>> def foo():
...     pass
>>> rp2.asm_pio(set_init=rp2.PIO.OUT_LOW)(foo)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "rp2.py", line 228, in asm_pio
  File "rp2.py", line 36, in __init__
ImportError: no module named 'array'

Keyboard

j / / n
next pair
k / / p
previous pair
1 / / h
show query pane
2 / / l
show candidate pane
c
copy suggested comment
r
toggle reasoning
g i
go to index
?
show this help
esc
close overlays

press ? or esc to close

copied