Hi there. I am working on an application where i need to transfer audio signal from a microphone connected to the nRF52840 to a smartphone. Are there any working examples demonstrating this? Or is it totally impossible to do on this BLE module?
Hi there. I am working on an application where i need to transfer audio signal from a microphone connected to the nRF52840 to a smartphone. Are there any working examples demonstrating this? Or is it totally impossible to do on this BLE module?
Aah.
Well, there's no defined protocol or GATT service for LE audio yet. I suggest you create a Service and Characteristic that can send data at high throughput, and on the smartphone an app that can receive the data stream through the custom Service/Characteristics. Do you intend to stream it in real-time or are you gonna just write to a file?
Makes good sense. Well, "somewhat real-time", a bit of delay is acceptable (1-3s), but otherwise we are trying to transmit it somewhat fast. The best reference is a a walkie-talkie application, not a music player.
Alright, I don't know that much about smartphone app development so I can't help much there, but both Android and iOS should have comprehensive guides on how to develop BLE apps.
I suggest you use a custom service, but the Nordic UART Service can get you up and running the fastest. There are probably several open-source projects that have built smartphone apps based on the NUS.
See the /examples/ble_peripheral/ble_app_uart.
What kind of throughput do you need?
Honestly, i haven't calculated the throughput needed to stream the audio from the microphone. But if we assume 8kHz (this is application specific) samplerate with 16bit resolution on 1-channel, i would say that 256Kbps should be plenty.
That's certainly possible with any smartphone that has support for extended MTU, Data Length Extension, and 2mbps PHY. I think most smartphones can handle that throughput.