nRF24 / RF24Audio

Arduino library for streaming data/audio from analog inputs via NRF24L01 modules

Home Page:http://nrf24.github.io/RF24Audio

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Question] what about streaming I2S data?

2bndy5 opened this issue · comments

I've been looking into porting this library to my circuitpython-nrf24l01 library, and I noticed that many of the platforms that run on CircuitPython firmware natively support I2S protocol for digital audio via the builtin audiocore module.

So, is there any usefulness to adding an I2S version of the RF24Audio class? Perceptually, I'm imagining just transmitting the I2S data line and leave the WS (Word Select AKA Channel Select) line implied by requiring that RX & TX nRF24L01 nodes have a matching startup configuration (concerning total number of channels, sample rate, and 8-bit vs 16-bit).

See also the I2S specs and the Arduino I2S library

The RPi -- version 1B+ and later -- needs I2S activated, but it does have a dedicated I2S bus. However, CircuitPython's audiocore is not available on Linux SoCs (rightfully so). But I have a feeling this library always had limited compatibility with the RPi due to lack of ADC builtin (concerning real-time audio input) and only 2 hardware-driven PWM GPIO pins (concerning audio output).

This library is mainly designed for AVR devices, and I would protest against expanding its scope. :p

I've written another library AutoAnalogAudio which is much more versatile and almost has support for the ESP32 and I2S. I could add support for the Arduino I2S lib there, but don't have any supported boards available.

Sounds good.