Raspberry Pi Pico DISCUSSION

Pico PIO output has occasional gaps: can DMA still leave the FIFO empty?

Started by aqibsaeed Raspberry Pi PicoPIODMA pacingFIFO underrunwaveform timing
3 replies 248 views 4 participants
Latest activity · 27 Sep 2026

Pico PIO output has occasional gaps: can DMA still leave the FIFO empty?

aqibsaeed Raspberry Pi Pico Forum
#1

Community replies 3

Re: Pico PIO output has occasional gaps: can DMA still leave the FIFO empty?

#2

DMA reduces CPU involvement but does not create an unlimited source of data. Check the PIO program's blocking pull behavior, FIFO depth and the DMA request selection. Use the correct peripheral DREQ to pace transfers; an inappropriate request source can break the expected producer-consumer timing.

Re: Pico PIO output has occasional gaps: can DMA still leave the FIFO empty?

#3

Compute the consumption rate from the actual instruction sequence and clock divider, including delay fields and loops. If the state machine consumes one 32-bit word every 2 µs, it needs 500,000 words per second, or 2 MB/s. That rate must remain available during buffer transitions as well as steady transfer.

Re: Pico PIO output has occasional gaps: can DMA still leave the FIFO empty?

#4

Capture the gap and a marker for buffer handover with a logic analyzer. Inspect transfer counts, chaining and which code refills the next buffer. Provide explicit underrun detection and a defined safe output state rather than silently replaying stale data when the producer falls behind.

TEP COMMUNITY