Task-free I2S speaker (audio sink) component for ESP-IDF v6.0.x, built on the modern i2s_std driver. Application calls a blocking i2s_spk_send_buffer() to hand off pre-filled audio buffers; there is no internal FreeRTOS task and no TX-side application callback — the blocking call's return is the sole completion signal. Drives I2S DAC modules such as the PCM5102A (GY-PCM5102).
Thin, transparent I2S microphone component for ESP-IDF v6.0.x, built on the modern i2s_std driver. Blocking one-buffer-per-call read from your own task, an honest overflow counter, and clean stop() semantics. No callbacks, no internal task, no buffering beyond the driver's own.