README.rst
1.. zephyr:code-sample:: uac2-implicit-feedback
2 :name: USB Audio asynchronous implicit feedback sample
3 :relevant-api: usbd_api uac2_device i2s_interface
4
5 USB Audio 2 implicit feedback sample playing stereo and recording mono audio
6 on I2S interface.
7
8Overview
9********
10
11This sample demonstrates how to implement USB asynchronous bidirectional audio
12with implicit feedback. The host adjusts number of stereo samples sent for
13headphones playback based on the number of mono microphone samples received.
14
15.. warning::
16 Microsoft Windows USB Audio 2.0 driver available since Windows 10,
17 release 1703 does not support implicit feedback.
18
19Requirements
20************
21
22Target must be able to measure I2S block start (i.e. first sample from output
23buffer gets out) relative to USB SOF. The relative offset must be reported with
24single sample accuracy.
25
26This sample has been tested on :ref:`nrf5340dk_nrf5340`. While for actual audio
27experience it is necessary to connect external I2S ADC and I2S DAC, simple echo
28can be accomplished by shorting I2S data output with I2S data input.
29
30Theoretically it should be possible to obtain the timing information based on
31I2S and USB interrupts, but currently neither subsystem currently provides
32necessary timestamp information.
33
34Building and Running
35********************
36
37The code can be found in :zephyr_file:`samples/subsys/usb/uac2_implicit_feedback`.
38
39To build and flash the application:
40
41.. zephyr-app-commands::
42 :zephyr-app: samples/subsys/usb/uac2_implicit_feedback
43 :board: nrf5340dk/nrf5340/cpuapp
44 :goals: build flash
45 :compact:
46