The first thing I found out was that the LED must use a state machine with ID 4-7. If I used ID 0-3, the I2S would stop the LEDS immediately, probably the PIO program or some other config was overwritten. This can definitely happen. Here is a technical description on the problem you observe. The RP...
Here's a possible reason for this behavior - the rate of IRQ callbacks is too fast to be serviced by the Micropython scheduler IRQ callbacks for both Timer and I2S objects don't get serviced immediately. The C code for these modules first push IRQ callback requests into a queue that is managed by th...
Is there any chance that the period of the signal is 20ms, not 20s. If that is the case, 50Hz power line interference (20ms period) is likely the cause.
It looks like all those devices need a master clock input. None include an internal PLL for creating the master clock internally. The ESP32 machine.PWM class should be able to create the master clock signal, which is typically 256*audio sampling rate.
Master clock support is presently only available with the mimxrt port. It is possible to add master clock support to the esp32 and stm32 ports, but at the moment there is no timeline for this development. As a workaround, you might be able to use the machine.PWM class to create a master clock signal...
If you are turning an encoder at a slow speed (e.g. manual knob turning), here is a gray code state machine implementation that will likely meet your needs. It includes 2 uasyncio examples. https://github.com/miketeachman/micropython-rotary https://github.com/miketeachman/micropython-rotary/blob/mas...
That has to be analyzed further. I do not expect this to be related to the Codec. edit: The unexpected halt on Teensy disappeared. I would like to try reproducing the problem with a Teensy 4.1, then try to find the root cause. Can you recommend a configuration that is likely to cause the audio dist...