The whole discussion on the Arduino-Pico GH https://github.com/earlephilhower/ardui ... sions/3239 and here could have been short-circuited with this one comment:
So, your sketch is probably trying to drive BCLK and LRCLK/WCLK, not looking at the external BCLK/LRCLK in any way, and probably doing bad things to the I2S pads on both ends (i.e. the Pico could drive BCLK=3.3V while the external master is trying to drive BCLK=0.0V).
I2S slave mode (i.e. external clock driving the PIO I2S peripheral) isn't supported for input, it's in the docs here https://github.com/earlephilhower/ardui ... l-setslave There is no driving the PIO off of an external clock, so the I2S slave mode PIO programs are very different from and more complex than the I2S master ones. It's not rocket science, but slave mode is a very different beast than master mode for the PIO.... the only change I made is to switch to 32 bit and add "slave" (target) mode...i2s.slave();
So, your sketch is probably trying to drive BCLK and LRCLK/WCLK, not looking at the external BCLK/LRCLK in any way, and probably doing bad things to the I2S pads on both ends (i.e. the Pico could drive BCLK=3.3V while the external master is trying to drive BCLK=0.0V).
Statistics: Posted by earlephilhower — Sun Nov 16, 2025 6:15 pm