Application Note

Bluetooth Audio Transceiver is an application developed based on Common SDK. It has the capability of Bluetooth, Bluetooth Low Energy, and audio. The host (External MCU) can communicate with Bluetooth Audio Transceiver through the UART interface. Before introducing the functions of the application, a few terms will first be defined:

  • ACI: Application Controller Interface, the communication interface between the ACI Host and Device.

  • ACI Device: Application Controller Interface Device, the chip that runs the Bluetooth Audio Transceiver application.

  • ACI Host: Application Controller Interface Host, the host can be an external MCU chip or PC, which must support the UART interface.

../../../_images/bt_audio_trx_aci.png

Bluetooth Audio Transceiver ACI

The objective of this ACI UART Transport Layer is to enable the use of the RTK Vendor Command set over a serial interface between two UARTs. The ACI Device provides common functions, such as power on, power off, factory reset, recording from the local MIC, local playback audio from ACI Host, HFP AG/HF, A2DP Source/Sink, etc.

These features are demonstrated in four different types of demo applications: Bluetooth Audio Transmitter, Bluetooth Audio Receiver, Bluetooth Audio Transceiver, Bluetooth Audio Transmitter MP3, and Bluetooth Audio Integrated Transceiver. Later sections will detail the features supported by each scenario type and the flowcharts for implementing these features.

Bluetooth Audio Transmitter

The system block diagram shown below consists of 4 parts: Phone, ACI Host, ACI Device, Headset. Different modules use various interfaces to communicate with each other:

  • Phone <-> ACI Device: Communication with Bluetooth/Bluetooth Low Energy.

  • ACI Host <-> ACI Device: Communication with UART.

  • ACI Device <-> Headset: Communication with Bluetooth/Bluetooth Low Energy.

  • MIC is connected to the internal codec.

../../../_images/bt_audio_transmitter.png

Bluetooth Audio Transmitter

The ACI Host connects with the ACI Device via the UART interface. Through the RTK Command set, the ACI Host controls the ACI Device into pairing mode, as well as active scanning and pairing with the Headset. In this application, the ACI Device acts as a Bluetooth Low Energy Peripheral. It will advertise and accept Bluetooth Low Energy connect requests from the mobile phone, and the phone can control the ACI Device through the Bluetooth Low Energy connection. The audio data flow is identified by the blue line with arrows.

For the Bluetooth link with the Headset, the ACI Device acts as the Source of A2DP or AG of HFP and can play the audio data from MIC, Line-in, or I2S to the Headset through the A2DP or SCO link.

Bluetooth Audio Receiver

The system block diagram is shown as follows, consisting of 3 parts: Phone, ACI Host, ACI Device, different modules use various interfaces to communicate with each other:

  • Phone <-> ACI Device: Communication with Bluetooth/Bluetooth Low Energy.

  • ACI Host <-> ACI Device: Communication with UART.

  • ACI Device <-> Headset: Communication with Bluetooth.

  • MIC and SPK are connected to the internal codec.

../../../_images/bt_audio_receiver.png

Bluetooth Audio Receiver

In this application, ACI Device acts as Bluetooth Low Energy Peripheral, it will advertise and accept Bluetooth Low Energy connect requests from the mobile phone, and the phone can control ACI Device through Bluetooth Low Energy connection. The audio data flow is identified by the blue line with arrows.

For the Bluetooth link with the cell phone, ACI Device acts as the HF role of HFP and A2DP Sink role of A2DP, which can play music and handle phone calls.

Bluetooth Audio Transceiver

The system block diagram is shown as follows, which consists of 5 parts: Phone, ACI Host, ACI Device 1, ACI Device 2, Headset, different modules use various interfaces to communicate with each other:

  • Phone <-> ACI Device 1: Communication with Bluetooth/Bluetooth Low Energy.

  • ACI Host <-> ACI Device 1: Communication with UART.

  • ACI Host <-> ACI Device 2: Communication with UART.

  • ACI Device 1 <-> ACI Device 2: Communication with SPI and GPIO.

  • ACI Device 2 <-> Headset: Communication with Bluetooth/Bluetooth Low Energy.

../../../_images/bt_audio_transceiver.png

Bluetooth Audio Transceiver

ACI Device 1 supports A2DP Sink and HFP HF; ACI Device 2 supports A2DP Source and HFP AG. The audio data flow is identified by the blue line with arrows:

  • In A2DP scenario:

    • Audio data are routed as follows: Phone -> ACI Device 1 -> ACI Device 2 -> Headset.

  • In SCO scenario:

    • Downstream voice data are routed as follows: Phone -> ACI Device 1 -> ACI Device 2 -> Headset SPK.

    • Upstream voice data are routed as follows: Headset MIC -> ACI Device 2 -> ACI Device 1 -> Phone.

Bluetooth Audio Transmitter MP3

The system block diagram is shown as follows in the figure below:

../../../_images/bt_audio_transmitter_mp3.png

Bluetooth Audio Transmitter MP3

The system block diagram is the same as bt_audio_transmitter. The only difference is that the audio data is from ACI Host CLI Tool. The audio data flow is identified by the blue line with arrows:

  • For the ACI Device itself, the audio data received from the ACI Host can not only be played out through the A2DP Source to the Headset but also through the local SPK, similarly, audio data sampled through the ACI Device’s MIC can also be sent to the ACI Host through the ACI.

  • For the Bluetooth link with the Headset, the ACI Device acts as the Source of A2DP and can play the audio data from ACI Host to the Headset through the A2DP link.

Bluetooth Audio Integrated Transceiver

The system block diagram is shown as follows, which consists of 4 parts: Phone, ACI Host, ACI Device, Headset. Different modules use various interfaces to communicate with each other:

  • Phone <-> ACI Device: Communication with Bluetooth.

  • ACI Host <-> ACI Device: Communication with UART.

  • ACI Device <-> Headset: Communication with Bluetooth.

../../../_images/bt_audio_transceiver_single_chip.png

Bluetooth Audio Integrated Transceiver

ACI Device supports both A2DP Sink/Source role and HFP HF/AG role. As a feature of this application, ACI Device needs to be connected to Phone and Headset at the same time. The audio data flow is identified by the blue line with arrows.

Requirements

The sample supports the following development kits.

Development kits

Hardware Platforms

Board Name

Build Target

RTL87x3E HDK

RTL87x3E EVB

bt_audio_trx_4M_lea_dual_bank0

bt_audio_trx_4M_lea_dual_bank1

RTL87x3EP HDK

RTL87x3EP EVB

bt_audio_trx_16M_lea_dual_bank0

bt_audio_trx_16M_lea_dual_bank1

RTL87x3D HDK

RTL87x3D EVB

bt_audio_trx_16M_lea_dual_bank0

bt_audio_trx_16M_lea_dual_bank1

RTL87x3G HDK

RTL87x3G EVB

bt_audio_trx_4M_lea_dual_bank0

bt_audio_trx_16M_lea_dual_bank0

Note

To purchase EVB, please visit https://www.realmcu.com/en/Home/Shop.

When built for an xxx_4M_xxx or xxx_16M_xxx build target, the sample is configured to build and run with a 4M or 16M flash map.

To quickly set up the development environment, please refer to the detailed instructions provided in Quick Start.

DSP

There are 3 types of images for Common SDK, which are shown below. We just take RTL87x3E as an example:

  • cs: Common SDK.

  • pipe: Audio Pipe.

  • lea: LE Audio.

  • ull: Ultra Low Latency.

DSP Images

DSP Image Type

Directory

cs_pipe_stereo

bin\rtl87x3e\8763EAU\4M\BANK0

cs_lea_pipe_stereo

bin\rtl87x3e\8763EAU\4M\DSP_Image\cs_leaaudio_pipe_stereo

cs_leaaudio_pipe_stereo_ull

bin\rtl87x3e\8763EAU\4M\DSP_Image\cs_leaaudio_pipe_stereo_ull

The supported function list of each image is listed in the table below.

DSP Image Functions

Function

cs_pipe_stereo

cs_lea_pipe_stereo

cs_leaaudio_pipe_stereo_ull

DSP Share 80K to MCU

Y

N

Y

DSP Voice SPK Algorithm

N

Y

N

LE Audio

N

Y

Y

BIS TX ULL

N

N

Y

CIS TX ULL

N

N

Y

Notification(VP, Ringtone)

Y

Y

N

Playback

Y

Y

N

Record Gain Control

Y

Y

N

Record

Y

Y

Y

Audio (A2DP)

Y

Y

N

Voice (HFP, 1 MIC)

Y

Y

N

Line-in

Y

Y

Y

Audio Pipe

Y

Y

Y

Local Playback

Y

Y

N

MP3 Decode

Y

Y

Y

Configurations

To understand the main function of Bluetooth Audio Transceiver, the application can be categorized into 5 scenarios, which are bt_audio_transmitter, bt_audio_receiver, bt_audio_transceiver, bt_audio_transmitter_mp3, and bt_audio_intergrated_transceiver.

As in the table below, the SDK has demo bins for providing these application scenarios and how to compile to generate these demo bins in the directory: release\board\evb\bt_audio_trx\mdk\rtl87x3e_bt_audio_trx.uvprojx.

Application Scenarios

Application Scenarios

Demo Bins

Macro Define in app_flags.h

bt_audio_transmitter

app_demo_bin\mdk\bt_audio_trx\bt_audio_transmitter

F_APP_BT_AUDIO_TRANSMITTER_DEMO_SUPPORT

bt_audio_receiver

app_demo_bin\mdk\bt_audio_trx\bt_audio_receiver

F_APP_BT_AUDIO_RECEIVER_DEMO_SUPPORT

bt_audio_transceiver

app_demo_bin\mdk\bt_audio_trx\bt_audio_transceiver

F_APP_BT_AUDIO_TRANSCEIVER_DEMO_SUPPORT

bt_audio_transmitter_mp3

app_demo_bin\mdk\bt_audio_trx\bt_audio_transmitter_mp3

F_APP_BT_AUDIO_TRANSMITTER_MP3_DEMO_SUPPORT

bt_audio_intergrated_transceiver

app_demo_bin\mdk\bt_audio_trx\bt_audio_intergrated_transceiver

F_APP_INTEGRATED_TRANSCEIVER

The directory paths of the above source codes are as follows:

  • bt_audio_transmitter: sample\bt_audio_trx\source_play.

  • bt_audio_receiver: sample\bt_audio_trx\bredr.

  • bt_audio_transceiver: sample\bt_audio_trx\transfer_path.

  • bt_audio_transmitter_mp3: sample\bt_audio_trx\music_playback.

  • bt_audio_intergrated_transceiver: sample\bt_audio_trx\source_play.

DSP Configuration

The supported function list of each image in DSPConfig Tool are listed in the table below.

RTL87x3E DSP Support Function

DSPConfig Tool

Tab

Function Block

cs_pipe_stereo

cs_lea_pipe_stereo

cs_lea_pipe_stereo_ull

Voice

Decode

NR

N

Y

N

HPF

N

Y

N

MB-DRC

N

Y

N

32KHz Process

N

Y

N

EQ

N

Y

N

Fade In/Out

N

Y

N

Comfort Noise

N

Y

N

Digital Gain

Y

Y

N

DAC

N

N

N

Encode

ADC

N

N

N

DC Remover

Y

Y

N

DSP Gain

Y

Y

N

AEC

Y

Y

N

Multi MIC

Y

Y

N

NR/AES

Y

Y

N

HPF

Y

Y

N

MB-DRC

Y

Y

N

EQ

Y

Y

N

32KHz Process

Y

Y

N

Fade In/Out

Y

Y

N

Post Gain

Y

Y

N

HW Sidetone

Y

Y

N

Sidetone

Y

Y

N

Record

ADC

N

N

N

DC Remover

N

N

N

DSP Gain

N

N

N

AEC

N

N

N

Multi MIC

N

N

N

NR/AES

N

N

N

HPF

N

N

N

MB-DRC

N

N

N

EQ

N

N

N

32KHz Process

N

N

N

Fade In/Out

N

N

N

Post Gain

Y

Y

N

Audio

MB-AGC

Y

Y

N

Parameter EQ

Y

Y

N

Audio Widening

Y

Y

N

Digital Gain

Y

Y

N

Transducer EQ

Y

Y

Y

DAC

N

N

N

Line-in

ADC

N

N

N

MB-AGC

N

N

N

Parameter EQ

N

N

N

Audio Widening

N

N

N

Transducer EQ

N

N

N

DAC

N

N

N

Notification

Default SPK Gain for Ringtone

Y

Y

N

Default SPK Gain for VP

Y

Y

N

If NR Support

1MIC NR

Y

Y

N

2MIC NR

N

N

N

Encode/Decode

MP3 Decode

Y

Y

Y

OPUS Encode

Y

Y

N

RTL87x3EP DSP Support Function

DSPConfig Tool

Tab

Function Block

Common SDK

Voice

Decode

NR

Y

HPF

Y

MB-DRC

Y

32KHz Process

Y

EQ

Y

Fade In/Out

Y

Comfort Noise

N

Digital Gain

Y

DAC

N

Encode

ADC

N

DC Remover

Y

DSP Gain

Y

AEC

Y

Multi MIC

Y

NR/AES

Y

HPF

Y

MB-DRC

Y

EQ

Y

32KHz Process

Y

Fade In/Out

Y

Post Gain

Y

HW Sidetone

Y

Sidetone

Y

Record

ADC

N

Pre Gain

Y

DC Remover

N

DSP Gain

N

AEC

N

Multi MIC

N

NR/AES

N

HPF

N

MB-DRC

N

EQ

N

32KHz Process

N

Fade In/Out

N

Comfort Noise

N

Post Gain

Y

Audio

MB-AGC

Y

Parameter EQ

Y

Audio Widening

Y

WDRC

Y

Digital Gain

Y

Transducer EQ

Y

DAC

N

Line-in

ADC

N

MB-AGC

N

Parameter EQ

N

Audio Widening

N

WDRC

N

Transducer EQ

N

DAC

N

Notification

Default SPK Gain for Ringtone

Y

Default SPK Gain for VP

Y

If NR Support

1MIC NR

Y

2MIC NR

N

Encode/Decode

MP3 Decode

N

OPUS Encode

Y

RTL87x3D DSP Support Function

DSPConfig Tool

Tab

Function Block

DSP1 Only

DSP1 + DSP2

Voice

Decode

NR

Y

Y

HPF

Y

Y

MB-DRC

Y

Y

32KHz Process

Y

Y

EQ

Y

Y

Fade In/Out

Y

Y

Comfort Noise

N

N

Digital Gain

Y

Y

DAC

N

N

Encode

ADC

Y

Y

DC Remover

Y

Y

DSP Gain

Y

Y

AEC

Y

Y

Multi MIC

Y

Y

NR/AES

Y

Y

HPF

Y

Y

MB-DRC

Y

Y

EQ

Y

Y

32KHz Process

Y

Y

Fade In/Out

Y

Y

Comfort Noise

N

N

Post Gain

Y

Y

HW Sidetone

Y

Y

Sidetone

Y

Y

Record

ADC

Y (16k/32k)

Y (16k/32k)

DC Remover

Y (16k/32k)

Y (16k/32k)

DSP Gain

Y (16k/32k)

Y (16k/32k)

AEC

Y (16k/32k)

Y (16k/32k)

Multi MIC

Y (16k/32k)

Y (16k/32k)

NR/AES

Y (16k/32k)

Y (16k/32k)

HPF

Y (16k/32k)

Y (16k/32k)

MB-DRC

Y (16k/32k)

Y (16k/32k)

EQ

Y (16k/32k)

Y (16k/32k)

32KHz Process

Y (32k)

Y (32k)

Fade In/Out

Y (16k/32k)

Y (16k/32k)

Comfort Noise

N

N

Post Gain

Y

Y

Audio

MB-AGC

Y

Y

Parameter EQ

Y

Y

Audio Widening

Y

Y

WDRC

Y

Y

Digital Gain

Y

Y

Transducer EQ

Y

Y

DAC

N

N

Line-in

ADC

Y

Y

MB-AGC

N

N

Parameter EQ

N

N

Audio Widening

N

N

WDRC

N

N

Transducer EQ

N

N

DAC

Y

Y

Notification

Default SPK Gain for Ringtone

Y

Y

Default SPK Gain for VP

Y

Y

If NR Support

1MIC NR

Y

Y

2MIC NR

N

N

Encode/Decode

MP3 Decode

Y

Y

OPUS Encode

Y

Y

Note

When using DSP1 Only, you need to set F_APP_HIFI4_SUPPORT to 0 in app_flags.h.

Building and Downloading

This sample can be found under sdk\board\evb\bt_audio_trx in the SDK folder structure.

Take the project rtl87x3e_bt_audio_trx.uvprojx and demo bin bt_audio_transmitter as an example. To build and run the sample with the Keil development environment, follow the steps listed below:

  1. Open the project rtl87x3e_bt_audio_trx.uvprojx.

  2. Set F_APP_BT_AUDIO_TRANSMITTER_DEMO_SUPPORT in app_flags.h to 1, and other macros below shall be set to 0.

    /**
     *  NOTE: Only one demo support flag shall be set to 1.
     */
    #define F_APP_BT_AUDIO_TRANSMITTER_DEMO_SUPPORT         1
    #define F_APP_BT_AUDIO_RECEIVER_DEMO_SUPPORT            0
    #define F_APP_BT_AUDIO_TRANSCEIVER_DEMO_SUPPORT         0
    #define F_APP_BT_AUDIO_TRANSMITTER_MP3_DEMO_SUPPORT     0
    #define F_APP_CHARGE_CASE_DEMO_SUPPORT                  0
    #define F_APP_DASHBOARD_DEMO_SUPPORT                    0
    
  3. Choose the build target bt_audio_trx_4M_lea_dual_bank0.

    ../../../_images/bt_audio_trx_chose_build_target.png

    Choose Build Target

  4. Build the target.

    ../../../_images/bt_audio_trx_building.png

    Target Building

    After a successful build, the APP bin file bt_audio_trx_bank0_MP-v0.0.0.0-xxx.bin will be generated in the directory bin\rtl87x3e\flash_4M_dualbank\bank0.

  5. Download the generated APP bin bt_audio_trx_bank0_MP-v0.0.0.0-xxx.bin into the EVB board.

    ../../../_images/all_download_image.png

    Download Image

  6. Press the reset button on the EVB board.

Experimental Verification

After programming the application bin to the EVB board, testing can be done with a Bluetooth headset or a mobile phone, depending on the specific application type of the bin. The following sections introduce the message sequence charts and implementation steps of each application demo bin, which are divided into:

Message Sequence Charts

This chapter shows typical interactions between Application Controller Interface (ACI) commands and events. It focuses on the message sequence charts (MSCs) for the procedures specified in Design Specification. This chapter illustrates only the most useful scenarios; it does not cover all possible alternatives. In all message sequence charts, it is assumed that all events are not masked, so the Controller will not filter out any events.

The sequence of messages in these message sequence charts is for illustrative purposes. The messages may be sent in a different order where allowed by the ACI. If any of these charts differ from the text in the ACI Parts, the text in those Parts overrides these charts.

Notation

The notation used in the message sequence charts consists of ovals, elongated hexagons, boxes, lines, and arrows. The vertical lines terminated on the top by a shadow box and at the bottom by a solid oval indicate a protocol entity that resides in a device. MSCs describe interactions between these entities and the states those entities may be in.

The following notations represent interactions and states.

Notations

Notation

Description

Oval

Defines the context for the message sequence chart.

Hexagon

Indicates a condition needed to start the transaction below this hexagon. The location and width of the Hexagon indicate which entity or entities make this decision.

Box

Replaces a group of transactions. May indicate a user action, or a procedure in the link layer.

Note

Gives an explanation of an element.

Alt/Else

Performs the appropriate action based on the alternative condition.

Loop

Repeats the loop to perform some behavior.

Control Flow

Some message sequences are split into several charts. In these charts, numbers indicate normal or required ordering, and letters represent alternative paths. For example, Step 4 is after Step 3, and Step 5a could be executed instead of Step 5b.

Example MSC

The protocol entities represented in the example illustrate the interactions of two devices named A and B, each device includes a Host and a link layer entity in this example. Other MSCs in this chapter may show the interactions of more than two devices.

Forward Compatibility

Many of the message sequences in this part use ACI Commands or events that have enhanced or extended variants that were added to the specification later than the relevant sequence. Such variants can be related commands or events with different names or commands or events with multiple versions. In some instances, a Host is required to use the new variant rather than the one shown in the MSC. Even when this is not a requirement, Host implementers may prefer to use the newer variants.

In these circumstances, the MSCs have not been rewritten to use newer features but have been left unchanged. In general, the new commands and events will directly replace the old ones, but this is not always the case and readers should not assume it.

Basic Functions

This chapter introduces some basic features, which are supported in various application scenarios. This chapter describes how to use these functions and the flow for testing them, including the MSCs of the ACI Device and ACI Host interaction, and the commands used.

Power On/Off and Factory Reset

Power on, power off, and factory reset functions are introduced in this chapter:

  • Power on state: The execution of any function must ensure that the system is in the power on state.

  • Power off state: The APP layer will do the corresponding processing to make DSP enter a power off state. Since the power on state will enter DLPS mode automatically, the power off state cannot be set.

  • Factory reset: This function can clear Bluetooth pairing information and reset FTL information. This command needs to be executed once after downloading.

Power On

The chip needs to execute the power on command after downloading.

Note

Using ACI Host CLI test may require sending the mmi pwron command multiple times to wake up the chip. This problem will not exist when the ACI Host wakes up the chip through GPIO. When there is no task, the chip in power on state will enter DLPS mode automatically.

The ACI Host CLI CMD for power on is mmi pwron, the corresponding UART CMD packet and tool log are as follows.

ACI Host CLI CMD for Power On

Command

Parameters

ACI Host CLI CMD

CMD_MMI = 0x0004

action = MMI_DEV_POWER_ON(0x54)

mmi pwron

2023-01-05 17:40:36,041 INFO: input command: mmi pwron
2023-01-05 17:40:36,041 INFO: Parser cmdParser: cmd opcode: 0004 param: [00 54] name: CMD_MMI
2023-01-05 17:40:36,042 INFO: Packet sendPacket: <<<send packet: AA 0F 04 00 04 00 00 54 95
2023-01-05 17:40:36,046 INFO: AciHostCLI continuously_read: >>>receive packet: AA 02 05 00 00 00 04 00 00 F5
2023-01-05 17:40:36,046 INFO: Parser eventParser: syncWord: AA,seqn: 02,len: 5,opcode: 0000,params: [04 00 00], check_sum: F5
2023-01-05 17:40:36,046 INFO: Parser eventParser: event name: APP_APP_EVENT_ACK
2023-01-05 17:40:36,047 INFO: Parser eventParser: event_id: [04 00]
2023-01-05 17:40:36,047 INFO: Parser eventParser: status: [00]

The chip that has executed the power on command will actively report APP_EVENT_DEVICE_STATE is powered on after reset. The corresponding event packet and tool log are as follows.

ACI Host CLI Event for Power On

Event

Parameters

APP_EVENT_DEVICE_STATE = 0x0007

state = APP_DEVICE_STATE_ON(1)

2023-01-05 17:40:36,078 INFO: AciHostCLI continuously_read: >>>receive packet: AA 03 03 00 07 00 01 F2
2023-01-05 17:40:36,078 INFO: Parser eventParser: syncWord: AA,seqn: 03,len: 3,opcode: 0007,params: [01], check_sum: F2
2023-01-05 17:40:36,079 INFO: Parser eventParser: event name: APP_EVENT_DEVICE_STATE
2023-01-05 17:40:36,079 INFO: Parser eventParser: device_state: [01]
2023-01-05 17:40:36,080 INFO: Packet sendPacket: <<<send packet: AA 10 05 00 00 00 07 00 00 E4

The corresponding flow chart is as follows.

../../../_images/bt_audio_trx_power_on.png

Power On

Power Off

After executing the power off command, the APP layer will do the corresponding processing to make the chip enter the power down state. The ACI Host CLI CMD for power off is mmi pwroff, the corresponding UART CMD packet and tool log are as follows.

ACI Host CLI CMD for Power Off

Command

Parameters

ACI Host CLI CMD

CMD_MMI = 0x0004

action = MMI_DEV_POWER_OFF(0x56)

mmi pwroff

2023-01-05 17:42:08,000 INFO: input command: mmi pwroff
2023-01-05 17:42:08,000 INFO: Parser cmdParser: cmd opcode: 0004 param: [00 56] name: CMD_MMI
2023-01-05 17:42:08,001 INFO: Packet sendPacket: <<<send packet: AA 11 04 00 04 00 00 56 91
2023-01-05 17:42:08,013 INFO: AciHostCLI continuously_read: >>>receive packet: AA 04 05 00 00 00 04 00 00 F3
2023-01-05 17:42:08,014 INFO: Parser eventParser: syncWord: AA,seqn: 04,len: 5,opcode: 0000,params: [04 00 00], check_sum: F3
2023-01-05 17:42:08,014 INFO: Parser eventParser: event name: APP_EVENT_ACK
2023-01-05 17:42:08,014 INFO: Parser eventParser: event_id: [04 00]
2023-01-05 17:42:08,014 INFO: Parser eventParser: status: [00]

The chip will return APP_EVENT_DEVICE_STATE with APP_DEVICE_STATE_OFF_ING to indicate the start of the power off preparation procedure. When the power off preparation procedure is completed, it will report the event of APP_EVENT_DEVICE_STATE with APP_DEVICE_STATE_OFF. The corresponding UART event packet and tool log are as follows.

ACI Host CLI Event for Power Off

Event

Parameters

APP_EVENT_DEVICE_STATE = 0x0007

state = APP_DEVICE_STATE_OFF_ING(2)

APP_EVENT_DEVICE_STATE = 0x0007

state = APP_DEVICE_STATE_OFF(0)

2023-01-05 17:42:08,014 INFO: AciHostCLI continuously_read: >>>receive packet: AA 05 03 00 07 00 02 EF
2023-01-05 17:42:08,015 INFO: Parser eventParser: syncWord: AA,seqn: 05,len: 3,opcode: 0007,params: [02], check_sum: EF
2023-01-05 17:42:08,015 INFO: Parser eventParser: event name: APP_EVENT_DEVICE_STATE
2023-01-05 17:42:08,015 INFO: Parser eventParser: device_state: [02]
2023-01-05 17:42:08,016 INFO: Packet sendPacket: <<<send packet: AA 12 05 00 00 00 07 00 00 E2
2023-01-05 17:42:09,500 INFO: AciHostCLI continuously_read: >>>receive packet: AA 06 03 00 07 00 00 F0
2023-01-05 17:42:09,500 INFO: Parser eventParser: syncWord: AA,seqn: 06,len: 3,opcode: 0007,params: [00], check_sum: F0
2023-01-05 17:42:09,501 INFO: Parser eventParser: event name: APP_EVENT_DEVICE_STATE
2023-01-05 17:42:09,501 INFO: Parser eventParser: device_state: [00]
2023-01-05 17:42:09,501 INFO: Packet sendPacket: <<<send packet: AA 13 05 00 00 00 07 00 00 E1
2023-01-05 17:42:10,395 ERROR: gap in packets, between 6 and 1 packet before: [170, 6, 3, 0, 7, 0, 0, 240] packet after: [170, 1, 2, 0, 32, 9, 212]
2023-01-05 17:42:10,396 INFO: AciHostCLI continuously_read: >>>receive packet: AA 01 02 00 20 09 D4
2023-01-05 17:42:10,396 INFO: Parser eventParser: syncWord: AA,seqn: 01,len: 2,opcode: 0920,params: [], check_sum: D4
2023-01-05 17:42:10,396 INFO: Parser eventParser: event name: EVENT_BT_READY
2023-01-05 17:42:10,397 INFO: Packet sendPacket: <<<send packet: AA 14 05 00 00 00 20 09 00 BE
../../../_images/bt_audio_trx_power_off.png

Power Off

Factory Reset

Note

Before executing the factory reset command, it is necessary to ensure that the device is in a power on state. Only after the factory reset is executed, the device can enter DLPS mode. As a result, it needs to be executed once after downloading.

After executing the factory reset command, the device will enter the power off state first, and then enter the power on state automatically.

The ACI Host CLI CMD for factory reset is mmi freset, the corresponding UART CMD packet and tool log are as follows.

ACI Host CLI CMD for Factory Reset

Command

Parameters

ACI Host CLI CMD

CMD_MMI = 0x0004

action = MMI_DEV_FACTORY_RESET(0x58)

mmi freset

After the factory reset, the chip will restore from the device state before the factory reset executes.

2023-01-05 17:50:34,629 INFO: input command: mmi freset
2023-01-05 17:50:34,630 INFO: Parser cmdParser: cmd opcode: 0004 param: [00 58] name: CMD_MMI
2023-01-05 17:50:34,631 INFO: Packet sendPacket: <<<send packet: AA 1E 04 00 04 00 00 58 82
2023-01-05 17:50:34,641 INFO: AciHostCLI continuously_read: >>>receive packet: AA 04 05 00 00 00 04 00 00 F3
2023-01-05 17:50:34,642 INFO: Parser eventParser: syncWord: AA,seqn: 04,len: 5,opcode: 0000,params: [04 00 00], check_sum: F3
2023-01-05 17:50:34,642 INFO: Parser eventParser: event name: APP_EVENT_ACK
2023-01-05 17:50:34,642 INFO: Parser eventParser: event_id: [04 00]
2023-01-05 17:50:34,643 INFO: Parser eventParser: status: [00]
2023-01-05 17:50:34,643 INFO: AciHostCLI continuously_read: >>>receive packet: AA 05 03 00 07 00 02 EF
2023-01-05 17:50:34,643 INFO: Parser eventParser: syncWord: AA,seqn: 05,len: 3,opcode: 0007,params: [02], check_sum: EF
2023-01-05 17:50:34,644 INFO: Parser eventParser: event name: APP_EVENT_DEVICE_STATE
2023-01-05 17:50:34,644 INFO: Parser eventParser: device_state: [02]
2023-01-05 17:50:34,645 INFO: Packet sendPacket: <<<send packet: AA 1F 05 00 00 00 07 00 00 D5
2023-01-05 17:50:35,153 INFO: AciHostCLI continuously_read: >>>receive packet: AA 06 03 00 07 00 00 F0
2023-01-05 17:50:35,154 INFO: Parser eventParser: syncWord: AA,seqn: 06,len: 3,opcode: 0007,params: [00], check_sum: F0
2023-01-05 17:50:35,154 INFO: Parser eventParser: event name: APP_EVENT_DEVICE_STATE
2023-01-05 17:50:35,155 INFO: Parser eventParser: device_state: [00]
2023-01-05 17:50:35,155 INFO: Packet sendPacket: <<<send packet: AA 20 05 00 00 00 07 00 00 D4
2023-01-05 17:50:35,675 INFO: AciHostCLI continuously_read: >>>receive packet: AA 01 02 00 20 09 D4
2023-01-05 17:50:35,675 INFO: Parser eventParser: syncWord: AA,seqn: 01,len: 2,opcode: 0920,params: [], check_sum: D4
2023-01-05 17:50:35,675 INFO: Parser eventParser: event name: EVENT_BT_READY
2023-01-05 17:50:35,676 INFO: Packet sendPacket: <<<send packet: AA 07 05 00 00 00 20 09 00 CB

The corresponding flow chart is as follows.

../../../_images/bt_audio_trx_factory_reset.png

Factory Reset

Connection and Linkback Function

This chapter introduces the functions of connecting to phone and connecting to BUD.

Connect to Phone

The function of connecting to the phone is implemented by sending ACI Host CLI CMD.

../../../_images/bt_audio_trx_link_phone_seq.png

Connect to Phone

ACI Host CLI Test: Connect to Phone
ACI Host CLI CMD for Connecting to Phone

Command

Parameters

ACI Host CLI CMD

Description

CMD_XM_SET_MODE = 0x0030

device_mode = BT_DEVICE_MODE_IDLE(0)

mode idle

BR/EDR radio in undiscoverable and unconnectable mode.

CMD_XM_SET_MODE = 0x0030

device_mode = BT_DEVICE_MODE_DISCOVERABLE(1)

mode inq_scan

BR/EDR radio in discoverable mode.

CMD_XM_SET_MODE = 0x0030

device_mode = BT_DEVICE_MODE_CONNECTABLE(2)

mode page_scan

BR/EDR radio in connectable mode.

CMD_XM_SET_MODE = 0x0030

device_mode = BT_DEVICE_MODE_DISCOVERABLE_CONNECTABLE(3)

mode all_enable

BR/EDR radio in discoverable and connectable mode.

CMD_BT_CREATE_CONNECTION = 0x0002

profile_mask, bd_addr

connect phone_sample

It chooses device to connect by inquiry scan result by index, no UART packet.

CMD_XM_USER_CFM_REQ = 0x8013

true = 0x01

btcfm t

Confirm connect request.

When using the connect phone_sample, the bd_addr parameter needs to be changed to the address of the phone.

  1. ACI Host CLI test: Device enters discoverable and connectable mode.

    2023-04-21 17:17:51,030 INFO: input command: mode all_enable
    2023-04-21 17:17:51,031 INFO: Parser cmdParser: cmd opcode: 0030 param: [03] name: CMD_XM_SET_MODE
    2023-04-21 17:17:51,031 INFO: Packet sendPacket: <<<send packet: AA 09 03 00 30 00 03 C1
    2023-04-21 17:17:51,037 INFO: AciHostCLI continuously_read: >>>receive packet: AA 04 05 00 00 00 30 00 00 C7
    2023-04-21 17:17:51,039 INFO: Parser eventParser: syncWord: AA,seqn: 04,len: 5,opcode: 0000,params: [30 00 00], check_sum: C7
    2023-04-21 17:17:51,044 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-21 17:17:51,045 INFO: Parser eventParser: event_id: [30 00]
    2023-04-21 17:17:51,047 INFO: Parser eventParser: status: [00]
    
  2. ACI Host CLI test: Pair/connect with phone_sample.

    2023-04-21 17:20:32,106 INFO: AciHostCLI continuously_read: >>>receive packet: AA 05 08 00 25 09 41 AF 7B 6C 32 20 9C
    2023-04-21 17:20:32,108 INFO: Parser eventParser: syncWord: AA,seqn: 05,len: 8,opcode: 0925,params: [41 AF 7B 6C 32 20], check_sum: 9C
    2023-04-21 17:20:32,108 INFO: Parser eventParser: event name: APP_EVENT_BR_PAIRING_REQ
    2023-04-21 17:20:32,109 INFO: Parser eventParser: bd_addr: [41 AF 7B 6C 32 20]
    2023-04-21 17:20:32,111 INFO: Packet sendPacket: <<<send packet: AA 08 05 00 00 00 25 09 00 C5
    2023-04-21 17:20:32,155 INFO: AciHostCLI continuously_read: >>>receive packet: AA 06 0C 00 14 00 01 00 AF 7B 6C 32 20 00 00 00 F1
    2023-04-21 17:20:32,156 INFO: Parser eventParser: syncWord: AA,seqn: 06,len: 12,opcode: 0014,params: [01 00 AF 7B 6C 32 20 00 00 00], check_sum: F1
    2023-04-21 17:20:32,158 INFO: Parser eventParser: event name: APP_EVENT_BR_LINK_STATUS
    2023-04-21 17:20:32,165 INFO: Parser eventParser: link_status: [01]
    2023-04-21 17:20:32,166 INFO: Parser eventParser: bd_addr: [00 AF 7B 6C 32 20]
    2023-04-21 17:20:32,167 INFO: Packet sendPacket: <<<send packet: AA 09 05 00 00 00 14 00 00 DE
    2023-04-21 17:20:32,170 INFO: AciHostCLI continuously_read: >>>receive packet: AA 07 31 00 09 00 00 41 AF 7B 6C 32 20 47 61 6C 61 78 79 20 41 34 30 73 00 00 00 00 00 00 00 00
    2023-04-21 17:20:32,171 INFO: Parser eventParser: syncWord: AA,seqn: 07,len: 49,opcode: 0009,params: [00 41 AF 7B 6C 32 20 47 61 6C 61 78 79 20 41 34 30 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00], check_sum: F8
    2023-04-21 17:20:32,172 INFO: Parser eventParser: event name: APP_EVENT_BR_REMOTE_NAME
    2023-04-21 17:20:32,172 INFO: Parser eventParser: cause: [00]
    2023-04-21 17:20:32,173 INFO: Parser eventParser: bd_addr: [41 AF 7B 6C 32 20]
    2023-04-21 17:20:32,174 INFO: Parser eventParser: name: [47 61 6C 61 78 79 20 41 34 30 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
    2023-04-21 17:20:32,177 INFO: Parser eventParser:  remote_name: Galaxy A40s
    2023-04-21 17:20:32,181 INFO: Packet sendPacket: <<<send packet: AA 0A 05 00 00 00 09 00 00 E8
    2023-04-21 17:20:32,378 INFO: AciHostCLI continuously_read: >>>receive packet: AA 08 0C 00 26 09 AC C9 07 00 41 AF 7B 6C 32 20 18
    2023-04-21 17:20:32,379 INFO: Parser eventParser: syncWord: AA,seqn: 08,len: 12,opcode: 0926,params: [AC C9 07 00 41 AF 7B 6C 32 20], check_sum: 18
    2023-04-21 17:20:32,381 INFO: Parser eventParser: event name: APP_EVENT_BR_SSP_NUMERIC_VALUE
    2023-04-21 17:20:32,382 INFO: Parser eventParser: display_val: [AC C9 07 00]
    2023-04-21 17:20:32,383 INFO: Parser eventParser: bd_addr: [41 AF 7B 6C 32 20]
    2023-04-21 17:20:32,384 INFO: Packet sendPacket: <<<send packet: AA 0B 05 00 00 00 26 09 00 C1
    2023-04-21 17:20:32,394 INFO: AciHostCLI continuously_read: >>>receive packet: AA 09 0D 00 00 88 41 AF 7B 6C 32 20 AC C9 07 00 00 BD
    2023-04-21 17:20:32,395 INFO: Parser eventParser: syncWord: AA,seqn: 09,len: 13,opcode: 8800,params: [41 AF 7B 6C 32 20 AC C9 07 00 00], check_sum: BD
    2023-04-21 17:20:32,397 INFO: Parser eventParser: event name: EVENT_XM_USER_CONFIRMATION_REQ
    2023-04-21 17:20:32,401 INFO: Parser eventParser: bd_addr: [41 AF 7B 6C 32 20]
    2023-04-21 17:20:32,402 INFO: Parser eventParser: display_val: [AC C9 07 00]
    2023-04-21 17:20:32,403 INFO: Packet sendPacket: <<<send packet: AA 0C 05 00 00 00 00 88 00 67
    
  3. ACI Host CLI test: Confirm connection request.

    2023-04-21 17:20:38,347 INFO: input command: btcfm t
    2023-04-21 17:20:38,348 INFO: Parser cmdParser: cmd opcode: 8013 param: [00 01] name: CMD_XM_USER_CFM_REQ
    2023-04-21 17:20:38,348 INFO: Packet sendPacket: <<<send packet: AA 0D 04 00 13 80 00 01 5B
    2023-04-21 17:20:38,366 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0A 05 00 00 00 13 80 00 5E
    2023-04-21 17:20:38,369 INFO: Parser eventParser: syncWord: AA,seqn: 0A,len: 5,opcode: 0000,params: [13 80 00], check_sum: 5E
    2023-04-21 17:20:38,371 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-21 17:20:38,374 INFO: Parser eventParser: event_id: [13 80]
    2023-04-21 17:20:38,378 INFO: Parser eventParser: status: [00]
    
  4. ACI Host CLI test: Connection successful.

    2023-04-21 17:20:39,741 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0B 0A 00 03 00 04 41 AF 7B 6C 32 20 01 BA
    2023-04-21 17:20:39,742 INFO: Parser eventParser: syncWord: AA,seqn: 0B,len: 10,opcode: 0003,params: [04 41 AF 7B 6C 32 20 01], check_sum: BA
    2023-04-21 17:20:39,743 INFO: Parser eventParser: event name: APP_EVENT_PROFILE_CONN_STATUS
    2023-04-21 17:20:39,743 INFO: Parser eventParser: profile: [04]
    2023-04-21 17:20:39,743 INFO: Parser eventParser: bd_addr: [41 AF 7B 6C 32 20]
    2023-04-21 17:20:39,744 INFO: Parser eventParser: others: [01]
    2023-04-21 17:20:39,744 INFO: Packet sendPacket: <<<send packet: AA 0E 05 00 00 00 03 00 00 EA
    2023-04-21 17:20:39,949 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0C 09 00 03 00 01 41 AF 7B 6C 32 20 BE
    2023-04-21 17:20:39,950 INFO: Parser eventParser: syncWord: AA,seqn: 0C,len: 9,opcode: 0003,params: [01 41 AF 7B 6C 32 20], check_sum: BE
    2023-04-21 17:20:39,953 INFO: Parser eventParser: event name: APP_EVENT_PROFILE_CONN_STATUS
    2023-04-21 17:20:39,954 INFO: Parser eventParser: profile: [01]
    2023-04-21 17:20:39,966 INFO: Parser eventParser: bd_addr: [41 AF 7B 6C 32 20]
    2023-04-21 17:20:39,968 INFO: Parser eventParser: others: []
    2023-04-21 17:20:39,970 INFO: Packet sendPacket: <<<send packet: AA 0F 05 00 00 00 03 00 00 E9
    2023-04-21 17:20:44,039 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0D 09 00 03 00 02 41 AF 7B 6C 32 20 BC
    2023-04-21 17:20:44,040 INFO: Parser eventParser: syncWord: AA,seqn: 0D,len: 9,opcode: 0003,params: [02 41 AF 7B 6C 32 20], check_sum: BC
    2023-04-21 17:20:44,041 INFO: Parser eventParser: event name: APP_EVENT_PROFILE_CONN_STATUS
    2023-04-21 17:20:44,042 INFO: Parser eventParser: profile: [02]
    2023-04-21 17:20:44,043 INFO: Parser eventParser: bd_addr: [41 AF 7B 6C 32 20]
    2023-04-21 17:20:44,044 INFO: Parser eventParser: others: []
    2023-04-21 17:20:44,045 INFO: Packet sendPacket: <<<send packet: AA 10 05 00 00 00 03 00 00 E8
    
Connect to BUD

The function of connecting to BUD is implemented by sending ACI Host CLI CMD.

../../../_images/bt_audio_trx_link_bud_seq.png

Connect to BUD

ACI Host CLI test: Connect to BUD
ACI Host CLI CMD for Connecting to BUD

Command

Parameters

ACI Host CLI CMD

Description

CMD_BT_CREATE_CONNECTION = 0x0002

profile_mask, bd_addr

connect device

It chooses a device to connect by the inquiry scan result by an index, no UART packet.

CMD_INQUIRY = 0x0321

0x00

inquiry start

Start inquiry.

CMD_BT_CREATE_CONNECTION = 0x0002

None

connect idx

Show devices that can be connected.

CMD_XM_USER_CFM_REQ = 0x8013

true = 0x01

btcfm t

Confirm connect request.

When using the connect headset_sample, the parameter of bd_addr needs to be changed to the address of the BUD.

  1. ACI Host CLI test: Connect to BUD with specific address directly.

    2023-04-23 19:07:07,166 INFO: input command: connect headset_sample
    2023-04-23 19:07:07,170 INFO: Parser cmdParser: cmd opcode: 0002 param: [07 01 00 00 DD CC BB AA 22 12] name: CMD_BT_CREATE_CONNECTION
    2023-04-23 19:07:07,171 INFO: Packet sendPacket: <<<send packet: AA 09 0C 00 02 00 07 01 00 00 DD CC BB AA 22 12 9F
    2023-04-23 19:07:07,183 INFO: AciHostCLI continuously_read: >>>receive packet: AA 07 05 00 00 00 02 00 00 F2
    2023-04-23 19:07:07,186 INFO: Parser eventParser: syncWord: AA,seqn: 07,len: 5,opcode: 0000,params: [02 00 00], check_sum: F2
    2023-04-23 19:07:07,192 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-23 19:07:07,197 INFO: Parser eventParser: event_id: [02 00]
    2023-04-23 19:07:07,206 INFO: Parser eventParser: status: [00]
    

    In addition to direct connection, BUD can also be connected through the inquiry process.

  2. ACI Host CLI test: BUDs inquiry start.

    2023-04-21 17:26:01,020 INFO: input command: inquiry start
    2023-04-21 17:26:01,021 INFO: Parser cmdParser: cmd opcode: 0321 param: [00 08] name: CMD_INQUIRY
    2023-04-21 17:26:01,021 INFO: Packet sendPacket: <<<send packet: AA 2C 04 00 21 03 00 08 A4
    2023-04-21 17:26:01,027 INFO: AciHostCLI continuously_read: >>>receive packet: AA 05 05 00 00 00 21 03 00 D2
    2023-04-21 17:26:01,028 INFO: Parser eventParser: syncWord: AA,seqn: 05,len: 5,opcode: 0000,params: [21 03 00], check_sum: D2
    2023-04-21 17:26:01,031 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-21 17:26:01,032 INFO: Parser eventParser: event_id: [21 03]
    2023-04-21 17:26:01,036 INFO: Parser eventParser: status: [00]
    2023-04-21 17:26:01,037 INFO: AciHostCLI continuously_read: >>>receive packet: AA 06 03 00 23 09 01 CA
    2023-04-21 17:26:01,037 INFO: Parser eventParser: syncWord: AA,seqn: 06,len: 3,opcode: 0923,params: [01], check_sum: CA
    2023-04-21 17:26:01,037 INFO: Parser eventParser: event name: APP_EVENT_BR_INQUIRY_STATE
    2023-04-21 17:26:01,038 INFO: Parser eventParser: inquiry_state: [01]
    2023-04-21 17:26:01,038 INFO: Packet sendPacket: <<<send packet: AA 2D 05 00 00 00 23 09 00 A2
    
  3. ACI Host CLI test: BUDs inquired.

    2023-04-21 17:26:25,514 INFO: AciHostCLI continuously_read: >>>receive packet: AA 09 35 00 29 09 B0 EC 33 E7 50 70 04 84 24 00 0D 4A 42 4C 20 57 41 56 45 20 46 4C 45 58 00 00
    2023-04-21 17:26:25,515 INFO: Parser eventParser: syncWord: AA,seqn: 09,len: 53,opcode: 0929,params: [B0 EC 33 E7 50 70 04 84 24 00 0D 4A 42 4C 20 57 41 56 45 20 46 4C 45 58 00 00 00 00 00 00 00 00], check_sum: E7
    2023-04-21 17:26:25,518 INFO: Parser eventParser: event name: APP_EVENT_BR_INQUIRY_RESULT
    2023-04-21 17:26:25,519 INFO: Parser eventParser: bd_addr: [B0 EC 33 E7 50 70]
    2023-04-21 17:26:25,520 INFO: Parser eventParser: cod: [04 84 24 00]
    2023-04-21 17:26:25,520 INFO: Parser eventParser: name_len: [0D]
    2023-04-21 17:26:25,521 INFO: Parser eventParser: name: [4A 42 4C 20 57 41 56 45 20 46 4C 45 58 00 00 00 00 00 00 00]
    2023-04-21 17:26:25,521 INFO: Parser eventParser: name: JBL WAVE FLEX
    2023-04-21 17:26:25,521 INFO: Packet sendPacket: <<<send packet: AA 30 05 00 00 00 29 09 00 99
    
  4. ACI Host CLI test: Show the device index of BUDs, and enter the index of the device to be connected.

    For example, in the following log, input 1 then enter.

    connect idx
    2023-04-21 17:33:24,158 INFO: Parser cmdParser: device index: 1 bd_addr: B0 EC 33 E7 50 70 cod: 04 84 24 00, name: JBL WAVE FLEX
    1
    
  5. ACI Host CLI test: Confirm connection request.

    Input btcfm t after the event EVENT_XM_USER_CONFIRMATION_REQ.

    2023-04-21 17:33:39,021 INFO: Parser eventParser: event name: EVENT_XM_USER_CONFIRMATION_REQ
    2023-04-21 17:33:39,021 INFO: Parser eventParser: bd_addr: [B0 EC 33 E7 50 70]
    2023-04-21 17:33:39,021 INFO: Parser eventParser: display_val: [31 E2 01 00]
    2023-04-21 17:33:39,021 INFO: Packet sendPacket: <<<send packet: AA 35 05 00 00 00 00 88 00 3E
    btcfm t
    2023-04-21 17:33:41,984 INFO: input command: btcfm t
    2023-04-21 17:33:41,985 INFO: Parser cmdParser: cmd opcode: 8013 param: [00 01] name: CMD_XM_USER_CFM_REQ
    2023-04-21 17:33:41,985 INFO: Packet sendPacket: <<<send packet: AA 36 04 00 13 80 00 01 32
    2023-04-21 17:33:41,991 INFO: AciHostCLI continuously_read: >>>receive packet: AA 33 05 00 00 00 13 80 00 35
    2023-04-21 17:33:41,993 INFO: Parser eventParser: syncWord: AA,seqn: 33,len: 5,opcode: 0000,params: [13 80 00], check_sum: 35
    2023-04-21 17:33:41,996 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-21 17:33:42,000 INFO: Parser eventParser: event_id: [13 80]
    2023-04-21 17:33:42,001 INFO: Parser eventParser: status: [00]
    
  6. ACI Host CLI test: Connect success and linkback.

    The following protocols are established by default: A2DP (0x01), AVRCP (0x02), and HFP (0x04).

    2023-04-21 17:55:49,697 INFO: AciHostCLI continuously_read: >>>receive packet: AA 11 09 00 03 00 01 B0 EC 33 E7 50 70 6C
    2023-04-21 17:55:49,699 INFO: Parser eventParser: syncWord: AA,seqn: 11,len: 9,opcode: 0003,params: [01 B0 EC 33 E7 50 70], check_sum: 6C
    2023-04-21 17:55:49,699 INFO: Parser eventParser: event name: APP_EVENT_PROFILE_CONN_STATUS
    2023-04-21 17:55:49,700 INFO: Parser eventParser: profile: [01]
    2023-04-21 17:55:49,701 INFO: Parser eventParser: bd_addr: [B0 EC 33 E7 50 70]
    2023-04-21 17:55:49,702 INFO: Parser eventParser: others: []
    2023-04-21 17:55:49,703 INFO: Packet sendPacket: <<<send packet: AA 29 05 00 00 00 03 00 00 CF
    2023-04-21 17:55:49,921 INFO: AciHostCLI continuously_read: >>>receive packet: AA 12 09 00 24 09 00 B0 EC 33 E7 50 70 42
    2023-04-21 17:55:49,921 INFO: Parser eventParser: syncWord: AA,seqn: 12,len: 9,opcode: 0924,params: [00 B0 EC 33 E7 50 70], check_sum: 42
    2023-04-21 17:55:49,923 INFO: Parser eventParser: event name: EVENT_SERVICES_SEARCH_STATE
    2023-04-21 17:55:49,924 INFO: Packet sendPacket: <<<send packet: AA 2A 05 00 00 00 24 09 00 A4
    2023-04-21 17:55:50,033 INFO: AciHostCLI continuously_read: >>>receive packet: AA 13 09 00 03 00 02 B0 EC 33 E7 50 70 69
    2023-04-21 17:55:50,035 INFO: Parser eventParser: syncWord: AA,seqn: 13,len: 9,opcode: 0003,params: [02 B0 EC 33 E7 50 70], check_sum: 69
    2023-04-21 17:55:50,040 INFO: Parser eventParser: event name: APP_EVENT_PROFILE_CONN_STATUS
    2023-04-21 17:55:50,042 INFO: Parser eventParser: profile: [02]
    2023-04-21 17:55:50,042 INFO: Parser eventParser: bd_addr: [B0 EC 33 E7 50 70]
    2023-04-21 17:55:50,043 INFO: Parser eventParser: others: []
    2023-04-21 17:55:50,043 INFO: Packet sendPacket: <<<send packet: AA 2B 05 00 00 00 03 00 00 CD
    2023-04-21 17:55:50,256 INFO: AciHostCLI continuously_read: >>>receive packet: AA 14 09 00 24 09 00 B0 EC 33 E7 50 70 40
    2023-04-21 17:55:50,260 INFO: Parser eventParser: syncWord: AA,seqn: 14,len: 9,opcode: 0924,params: [00 B0 EC 33 E7 50 70], check_sum: 40
    2023-04-21 17:55:50,262 INFO: Parser eventParser: event name: EVENT_SERVICES_SEARCH_STATE
    2023-04-21 17:55:50,268 INFO: Packet sendPacket: <<<send packet: AA 2C 05 00 00 00 24 09 00 A2
    2023-04-21 17:55:50,527 INFO: AciHostCLI continuously_read: >>>receive packet: AA 15 03 00 36 03 00 AF
    2023-04-21 17:55:50,528 INFO: Parser eventParser: syncWord: AA,seqn: 15,len: 3,opcode: 0336,params: [00], check_sum: AF
    2023-04-21 17:55:50,530 INFO: Packet sendPacket: <<<send packet: AA 2D 05 00 00 00 36 03 00 95
    2023-04-21 17:55:50,560 INFO: AciHostCLI continuously_read: >>>receive packet: AA 16 0A 00 03 00 04 B0 EC 33 E7 50 70 01 62
    2023-04-21 17:55:50,561 INFO: Parser eventParser: syncWord: AA,seqn: 16,len: 10,opcode: 0003,params: [04 B0 EC 33 E7 50 70 01], check_sum: 62
    2023-04-21 17:55:50,565 INFO: Parser eventParser: event name: APP_EVENT_PROFILE_CONN_STATUS
    2023-04-21 17:55:50,572 INFO: Parser eventParser: profile: [04]
    2023-04-21 17:55:50,574 INFO: Parser eventParser: bd_addr: [B0 EC 33 E7 50 70]
    2023-04-21 17:55:50,574 INFO: Parser eventParser: others: [01]
    2023-04-21 17:55:50,574 INFO: Packet sendPacket: <<<send packet: AA 2E 05 00 00 00 03 00 00 CA
    
  7. ACI Host CLI test: Linkback to ACI Device.

    Input mode page_scan to enter connectable mode. In the scenario that needs BUD linkback, please make BUD enters pairing mode, ACI Device will be connected with BUD automatically.

    2023-04-23 19:24:06,535 INFO: input command: mode page_scan
    2023-04-23 19:24:06,538 INFO: Parser cmdParser: cmd opcode: 0030 param: [02] name: CMD_XM_SET_MODE
    2023-04-23 19:24:06,544 INFO: Packet sendPacket: <<<send packet: AA 0C 03 00 30 00 02 BF
    2023-04-23 19:24:06,553 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0A 05 00 00 00 30 00 00 C1
    2023-04-23 19:24:06,565 INFO: Parser eventParser: syncWord: AA,seqn: 0A,len: 5,opcode: 0000,params: [30 00 00], check_sum: C1
    2023-04-23 19:24:06,576 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-23 19:24:06,585 INFO: Parser eventParser: event_id: [30 00]
    2023-04-23 19:24:06,589 INFO: Parser eventParser: status: [00]
    

Bluetooth Low Energy Function

The ACI Device can act as a Central, scanning surrounding advertisements and initiating connections, and can also operate as a Peripheral, broadcasting and accepting connections.

For the Central role, it typically uses the following commands.

ACI Host CLI CMD for Central Role

Command

Parameters

ACI Host CLI CMD

Description

CMD_LE_START_SCAN = 0x0103

local_addr_type, phys, filter_policy, filter_duplicates, scan_type_1M, scan_interval_1M, scan_window_1M, scan_type_Coded, scan_interval_Coded, scan_window_Coded

le start_scan

Start scanning.

CMD_LE_STOP_SCAN = 0x0104

None

le stop_scan

Stop scanning.

CMD_LE_CREATE_CONN = 0x010E

None

le conn_idx

Show scan list and enter device index to initiate a connection.

CMD_LE_CREATE_CONN = 0x010E

init_phys, remote_bd_type, remote_bd[6], local_bd_type, scan_timeout

connect_sample

Initiate a connection to the specific device.

CMD_LE_START_PAIR = 0x0109

link_id

le start_pair_dev1

Pair with the specific device.

For the Peripheral role, these commands are commonly required.

ACI Host CLI CMD for Peripheral Role

Command

Parameters

ACI Host CLI CMD

Description

CMD_XM_LE_ADV_CREATE = 0x804B

adv_data(Arbitrary value), adv_prop, interval_min, interval_max, owner_addr_type, owner_addr, peer_addr_type, peer_addr, adv_data_len, adv_data, scan_rsp_len, scan_rsp

le adv_create

Create LE ADV with params.

CMD_XM_LE_START_ADVERTISING = 0x8040

adv_interval

le advstart

Start LE ADV with a handle.

CMD_XM_LE_STOP_ADVERTISING = 0x8041

adv_interval

le advstop

Stop LE ADV with a handle.

CMD_XM_LE_ADV_DATA_UPDATE = 0x8044

adv_handle, adv_len, adv_data

le adv_data

Update ADV data for preset LE ADV.

CMD_XM_LE_SCAN_RSP_DATA_UPDATE = 0x8045

adv_handle, scan_rsp_len = 0x001F, scan_rsp

le scan_rsp_data

Update scan rsp for preset LE ADV.

CMD_XM_LE_ADV_INTVAL_UPDATE = 0x8046

adv_handle, adv_interval = 0x0320

le adv500ms

Update advertising interval for preset LE ADV.

CMD_XM_LE_USER_CFM_REQ = 0x8049

link_id, action = true

lecfm t

Accept pairing request.

CMD_XM_LE_USER_CFM_REQ = 0x8049

link_id, action = false

lecfm f

Reject pairing request.

Once a connection is established, connection parameters can be updated, data can be transferred, and the connection can be disconnected among other operations.

ACI Host CLI CMD for LE Connection

Command

Parameters

ACI Host CLI CMD

Description

CMD_XM_LE_DISC = 0x8042

app_link_id

le disconn

Disconnect device on a specific link.

CMD_XM_LE_CONN_PARAM_UPDATE = 0x8043

app_link_id, conn_interval = 0x0050, latency = 0x0000, supervision_tout = 0x01F4

le conn_param

ConnInterval is 0x50 * 1.25 = 100ms, latency = 0, supTimeout = 0x1F4 * 10ms = 5s.

CMD_XM_LE_ATT_GET_MTU = 0x8047

app_link_id

le mtu

Get the MTU for the LE link with app_link_id.

CMD_LE_DATA_TRANSFER = 0x0102

app_link_id, pkt_type=PKT_TYPE_SINGLE(0x00), total_len, pkt_len, payload

le send1

An example for GATT service data transfer.

Additionally, the ACI Device supports features such as the use of a white list, a resolving list, and resolution capabilities.

ACI Host CLI CMD for List Capabilities

Command

Parameters

ACI Host CLI CMD

Description

CMD_LE_MODIFY_WHITELIST = 0x0161

opcode = GAP_WHITE_LIST_OP_CLEAR

whitelist clr_sample

Clear the white list.

CMD_LE_MODIFY_WHITELIST = 0x0161

opcode = GAP_WHITE_LIST_OP_ADD, bd_addr

whitelist add_sample

Add a device to white list.

CMD_LE_MODIFY_WHITELIST = 0x0161

opcode = GAP_WHITE_LIST_OP_REMOVE, bd_addr

whitelist rmv_sample

Remove a device from white list.

CMD_LE_MODIFY_WHITELIST_BY_IDX = 0x0162

opcode, device_idx

whitelist_id add_idx0

Add the first device stored in the bond list to the white list.

CMD_LE_MODIFY_WHITELIST_BY_IDX = 0x0162

opcode, device_idx

whitelist_id rmv_idx0

Remove the first device stored in the bond list from the white list.

CMD_LE_MODIFY_RESOLVELIST_BY_IDX = 0x0163

opcode, device_idx

resolvlist_id add_idx0

Add the first device stored in the bond list to the resolving list.

CMD_LE_MODIFY_RESOLVELIST_BY_IDX = 0x0163

opcode, device_idx

resolvlist_id rmv_idx0

Remove the first device stored in the bond list from the resolving list.

CMD_LE_SET_RESOLUTION = 0x0164

operation

le_resolution enable/disable

Enable/disable resolution.

ACI Host CLI Test: Advertising
../../../_images/bt_audio_trx_ble_seq_step_1.png

BLE Advertising

Start advertising with le adv_create and le advstart. Meanwhile, be sure that EVB is in power on mode.

le adv_create
2023-04-25 15:13:40,814 INFO: input command: le adv_create
2023-04-25 15:13:40,816 INFO: Parser cmdParser: cmd opcode: 804B param: [00 13 20 00 20 00 01 59 27 EF 53 9D FC 01 11 33 11 66 55 66 0A 00 03 16 95 FE 05 09 41 41 41 41] name: CMD_XM_LE_ADV_CREATE
2023-04-25 15:13:40,818 INFO: Packet sendPacket: <<<send packet: AA 01 2A 00 4B 80 00 13 20 00 20 00 01 59 27 EF 53 9D FC 01 11 33 11 66 55 66 0A 00 03 16 95 FE
2023-04-25 15:13:40,831 INFO: AciHostCLI continuously_read: >>>receive packet: AA 03 05 00 00 00 4B 80 00 6C
2023-04-25 15:13:40,838 INFO: Parser eventParser: syncWord: AA,seqn: 03,len: 5,opcode: 0000,params: [4B 80 00], check_sum: 6C
2023-04-25 15:13:40,840 INFO: Parser eventParser: event name: APP_EVENT_ACK
2023-04-25 15:13:40,841 INFO: Parser eventParser: event_id: [4B 80]
2023-04-25 15:13:40,843 INFO: Parser eventParser: status: [00]
2023-04-25 15:13:40,844 INFO: AciHostCLI continuously_read: >>>receive packet: AA 04 03 00 08 81 00 70
2023-04-25 15:13:40,845 INFO: Parser eventParser: syncWord: AA,seqn: 04,len: 3,opcode: 8108,params: [00], check_sum: 70
2023-04-25 15:13:40,846 INFO: Parser eventParser: event name: EVENT_XM_LE_ADV_CREATED
2023-04-25 15:13:40,847 INFO: Parser eventParser: handle: [00]
2023-04-25 15:13:40,853 INFO: Packet sendPacket: <<<send packet: AA 02 05 00 00 00 08 81 00 70
le advstart
2023-04-25 16:57:57,670 INFO: input command: le advstart
2023-04-25 16:57:57,671 INFO: Parser cmdParser: cmd opcode: 8040 param: [00 78 00] name: CMD_XM_LE_START_ADVERTISING
2023-04-25 16:57:57,672 INFO: Packet sendPacket: <<<send packet: AA 1B 05 00 40 80 00 78 00 E7
2023-04-25 16:57:57,684 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0E 05 00 40 80 00 01 00 6B
2023-04-25 16:57:57,685 INFO: Parser eventParser: syncWord: AA,seqn: 0E,len: 5,opcode: 8040,params: [00 01 00], check_sum: 6B
2023-04-25 16:57:57,686 INFO: Parser eventParser: event name: EVENT_XM_LE_ADV_STATE
2023-04-25 16:57:57,686 INFO: Parser eventParser: adv_state: [00]
2023-04-25 16:57:57,687 INFO: Parser eventParser: stop_cause: [01]
2023-04-25 16:57:57,687 INFO: Packet sendPacket: <<<send packet: AA 1C 05 00 00 00 40 80 00 5E
2023-04-25 16:57:57,700 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0F 05 00 00 00 40 80 00 6B
2023-04-25 16:57:57,701 INFO: Parser eventParser: syncWord: AA,seqn: 0F,len: 5,opcode: 0000,params: [40 80 00], check_sum: 6B
2023-04-25 16:57:57,702 INFO: Parser eventParser: event name: APP_EVENT_ACK
2023-04-25 16:57:57,703 INFO: Parser eventParser: event_id: [40 80]
2023-04-25 16:57:57,703 INFO: Parser eventParser: status: [00]
ACI Host CLI Test: Connection Establishment

If a Central device (Such as a mobile phone) establishes a connection with the ACI Device (Operating as a Peripheral), or if the ACI Device (Operating as a Central) establishes a connection with a Peripheral device (Such as a headphone), the ACI Device will report the APP_EVENT_LE_CONNECTED.

../../../_images/bt_audio_trx_ble_seq_step_2.png

BLE Connection Establishment

2023-04-25 16:58:35,969 INFO: AciHostCLI continuously_read: >>>receive packet: AA 10 05 00 40 80 00 00 02 68
2023-04-25 16:58:35,969 INFO: Parser eventParser: syncWord: AA,seqn: 10,len: 5,opcode: 8100,params: [00 00 02], check_sum: 68
2023-04-25 16:58:35,970 INFO: Parser eventParser: event name: EVENT_XM_LE_ADV_STATE
2023-04-25 16:58:35,970 INFO: Parser eventParser: adv_state: [00]
2023-04-25 16:58:35,971 INFO: Parser eventParser: stop_cause: [00]
2023-04-25 16:58:35,971 INFO: Packet sendPacket: <<<send packet: AA 1D 05 00 00 00 00 81 00 5D
2023-04-25 16:58:35,985 INFO: AciHostCLI continuously_read: >>>receive packet: AA 11 03 00 00 01 00 EB
2023-04-25 16:58:35,985 INFO: Parser eventParser: syncWord: AA,seqn: 11,len: 3,opcode: 0100,params: [00], check_sum: EB
2023-04-25 16:58:35,986 INFO: Parser eventParser: event name: APP_EVENT_LE_CONNECTED
2023-04-25 16:58:35,986 INFO: Parser eventParser: link_id: [00]
2023-04-25 16:58:35,987 INFO: Packet sendPacket: <<<send packet: AA 1E 05 00 00 00 00 01 00 DC
2023-04-25 16:58:36,001 INFO: AciHostCLI continuously_read: >>>receive packet: AA 12 14 00 03 81 02 00 0D 00 02 01 D3 27 0A 2B 27 53 24 00 00 00 F4 01 82
2023-04-25 16:58:36,002 INFO: Parser eventParser: syncWord: AA,seqn: 12,len: 20,opcode: 8103,params: [02 00 0D 00 02 01 D3 27 0A 2B 27 53 24 00 00 00 F4 01], check_sum: 82
2023-04-25 16:58:36,002 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_STATE
2023-04-25 16:58:36,002 INFO: Parser eventParser: link_state: [02]
2023-04-25 16:58:36,003 INFO: Parser eventParser: app_link_id: [00]
2023-04-25 16:58:36,003 INFO: Parser eventParser: conn_handle: [0D 00]
2023-04-25 16:58:36,004 INFO: Parser eventParser: role: [02]
2023-04-25 16:58:36,577 INFO: AciHostCLI continuously_read: >>>receive packet: AA 14 0A 00 04 81 00 00 06 00 00 00 F4 01 62
2023-04-25 16:58:36,578 INFO: Parser eventParser: syncWord: AA,seqn: 14,len: 10,opcode: 8104,params: [00 00 06 00 00 00 F4 01], check_sum: 62
2023-04-25 16:58:36,579 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_PARAM
2023-04-25 16:58:36,579 INFO: Parser eventParser: app_link_id: [00]
2023-04-25 16:58:36,580 INFO: Parser eventParser: res: [00]
2023-04-25 16:58:36,580 INFO: Parser eventParser: connInterval: [06 00]
2023-04-25 16:58:36,581 INFO: Parser eventParser: connLatency: [00 00]
2023-04-25 16:58:36,581 INFO: Parser eventParser: supTimeout: [F4 01]
2023-04-25 16:58:36,581 INFO: Packet sendPacket: <<<send packet: AA 21 05 00 00 00 04 81 00 55
2023-04-25 16:58:36,880 INFO: AciHostCLI continuously_read: >>>receive packet: AA 15 0A 00 04 81 00 00 24 00 00 00 F4 01 43
2023-04-25 16:58:36,881 INFO: Parser eventParser: syncWord: AA,seqn: 15,len: 10,opcode: 8104,params: [00 00 24 00 00 00 F4 01], check_sum: 43
2023-04-25 16:58:36,882 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_PARAM
2023-04-25 16:58:36,882 INFO: Parser eventParser: app_link_id: [00]
2023-04-25 16:58:36,883 INFO: Parser eventParser: res: [00]
2023-04-25 16:58:36,883 INFO: Parser eventParser: connInterval: [24 00]
2023-04-25 16:58:36,883 INFO: Parser eventParser: connLatency: [00 00]
2023-04-25 16:58:36,884 INFO: Parser eventParser: supTimeout: [F4 01]
2023-04-25 16:58:36,885 INFO: Packet sendPacket: <<<send packet: AA 22 05 00 00 00 04 81 00 54
ACI Host CLI Test: Data Transfer

Phone should subscript notification with UUID 0xFD04. If pairing needed (EVENT_XM_LE_USER_CONFIRMATION_REQ), input lecfm t to confirm the pairing authorization.

../../../_images/bt_audio_trx_ble_seq_step_3.png

BLE Data Transfer

lecfm t
2023-04-25 17:15:25,084 INFO: input command: lecfm t
2023-04-25 17:15:25,085 INFO: Parser cmdParser: cmd opcode: 8049 param: [00 01] name: CMD_XM_LE_USER_CFM_REQ
2023-04-25 17:15:25,086 INFO: Packet sendPacket: <<<send packet: AA 13 04 00 49 80 00 01 5E
2023-04-25 17:15:25,091 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0F 05 00 00 00 49 80 00 62
2023-04-25 17:15:25,093 INFO: Parser eventParser: syncWord: AA,seqn: 0F,len: 5,opcode: 0000,params: [49 80 00], check_sum: 62
2023-04-25 17:15:25,096 INFO: Parser eventParser: event name: APP_EVENT_ACK
2023-04-25 17:15:25,097 INFO: Parser eventParser: event_id: [49 80]
2023-04-25 17:15:25,097 INFO: Parser eventParser: status: [00]
2023-04-25 17:15:28,494 INFO: AciHostCLI continuously_read: >>>receive packet: AA 10 0B 00 02 01 00 00 00 22 75 9A C6 3D 50 5E
2023-04-25 17:15:28,495 INFO: Parser eventParser: syncWord: AA,seqn: 10,len: 11,opcode: 0102,params: [00 00 00 22 75 9A C6 3D 50], check_sum: 5E
2023-04-25 17:15:28,496 INFO: Parser eventParser: event name: APP_EVENT_LE_PAIR_STATUS
2023-04-25 17:15:28,496 INFO: Parser eventParser: link_id: [00]
2023-04-25 17:15:28,497 INFO: Parser eventParser: cause: [00 00]
2023-04-25 17:15:28,497 INFO: Parser eventParser: resolved_addr: [22 75 9A C6 3D 50]
2023-04-25 17:15:28,498 INFO: Packet sendPacket: <<<send packet: AA 14 05 00 00 00 02 01 00 E4
2023-04-25 17:15:29,070 INFO: AciHostCLI continuously_read: >>>receive packet: AA 11 0B 00 06 30 0D 00 04 00 00 02 00 02 00 99
2023-04-25 17:15:29,071 INFO: Parser eventParser: syncWord: AA,seqn: 11,len: 11,opcode: 3006,params: [0D 00 04 00 00 02 00 02 00], check_sum: 99
2023-04-25 17:15:29,072 INFO: Packet sendPacket: <<<send packet: AA 15 05 00 00 00 06 30 00 B0

Then le send1 can send data 0x01 0x34 0x56.

le send1
2023-04-25 17:05:50,644 INFO: input command: le send1
2023-04-25 17:05:50,645 INFO: Parser cmdParser: cmd opcode: 0102 param: [00 00 03 00 03 00 01 34 56] name: CMD_LE_DATA_TRANSFER
2023-04-25 17:05:50,646 INFO: Packet sendPacket: <<<send packet: AA 31 0B 00 02 01 00 00 03 00 03 00 01 34 56 30
2023-04-25 17:05:50,659 INFO: AciHostCLI continuously_read: >>>receive packet: AA 24 05 00 00 00 02 01 00 D4
2023-04-25 17:05:50,660 INFO: Parser eventParser: syncWord: AA,seqn: 24,len: 5,opcode: 0000,params: [02 01 00], check_sum: D4
2023-04-25 17:05:50,660 INFO: Parser eventParser: event name: APP_EVENT_ACK
2023-04-25 17:05:50,661 INFO: Parser eventParser: event_id: [02 01]
2023-04-25 17:05:50,661 INFO: Parser eventParser: status: [00]
ACI Host CLI Test: Scan Devices

The ACI Device currently supports two scan commands: CMD_LE_START_SCAN and CMD_LEA_SCAN. These are used to scan all LE devices and devices that support LE Audio respectively. This chapter introduces the CMD_LE_START_SCAN command. For information on the CMD_LEA_SCAN command, please refer to chapter Initiator General ACI Host CLI Test. Please note, after scanning the devices, both commands report information through the EVENT_LE_AUDIO_SCAN_INFO event.

../../../_images/bt_audio_trx_ble_scan.png

BLE Scan Device

2024-05-20 10:34:10,712 INFO: input command: le start_scan
2024-05-20 10:34:10,713 INFO: Parser cmdParser: cmd opcode: 0103 param: [00 01 00 01 01 90 01 C8 00 01 90 01 C8 00] name: CMD_LE_START_SCAN
2024-05-20 10:34:10,713 INFO: Packet sendPacket: <<<send packet: AA 0A 10 00 03 01 00 01 00 01 01 90 01 C8 00 01 90 01 C8 00 2C
2024-05-20 10:34:10,793 INFO: AciHostCLI continuously_read: >>>receive packet: AA 03 05 00 00 00 03 01 00 F4
2024-05-20 10:34:10,793 INFO: Parser eventParser: syncWord: AA,seqn: 03,len: 5,opcode: 0000,params: [03 01 00], check_sum: F4
2024-05-20 10:34:10,794 INFO: Parser eventParser: event name: APP_EVENT_ACK
2024-05-20 10:34:10,794 INFO: Parser eventParser: event_id: [03 01]
2024-05-20 10:34:10,796 INFO: Parser eventParser: status: [00]
2024-05-20 10:34:10,825 INFO: AciHostCLI continuously_read: >>>receive packet: AA 04 34 00 40 01 13 00 01 0A B2 8E 26 D5 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2024-05-20 10:34:10,826 INFO: Parser eventParser: syncWord: AA,seqn: 04,len: 52,opcode: 0140,params: [13 00 01 0A B2 8E 26 D5 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00], check_sum: C6
2024-05-20 10:34:10,827 INFO: Parser eventParser: event name: APP_EVENT_LE_AUDIO_SCAN_INFO
2024-05-20 10:34:10,828 INFO: Parser eventParser: event_type: [13 00]
2024-05-20 10:34:10,828 INFO: Parser eventParser: addr_type: [01]
2024-05-20 10:34:10,829 INFO: Parser eventParser: addr: [0A B2 8E 26 D5 68]
2024-05-20 10:34:10,830 INFO: Parser eventParser: name_len: [00]
2024-05-20 10:34:10,830 INFO: Parser eventParser: name: [00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
2024-05-20 10:34:10,831 INFO: Parser eventParser: name:
2024-05-20 10:34:10,831 INFO: Packet sendPacket: <<<send packet: AA 0B 05 00 00 00 40 01 00 AF
2024-05-20 10:34:10,841 INFO: AciHostCLI continuously_read: >>>receive packet: AA 05 34 00 40 01 10 00 01 10 EF E9 32 1D C9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2024-05-20 10:34:10,842 INFO: Parser eventParser: syncWord: AA,seqn: 05,len: 52,opcode: 0140,params: [10 00 01 10 EF E9 32 1D C9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00], check_sum: 75
2024-05-20 10:34:10,843 INFO: Parser eventParser: event name: APP_EVENT_LE_AUDIO_SCAN_INFO
2024-05-20 10:34:10,843 INFO: Parser eventParser: event_type: [10 00]
2024-05-20 10:34:10,844 INFO: Parser eventParser: addr_type: [01]
2024-05-20 10:34:10,847 INFO: Parser eventParser: addr: [10 EF E9 32 1D C9]
2024-05-20 10:34:10,848 INFO: Parser eventParser: name_len: [00]
2024-05-20 10:34:10,849 INFO: Parser eventParser: name: [00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
2024-05-20 10:34:10,849 INFO: Parser eventParser: name:
2024-05-20 10:34:10,851 INFO: Packet sendPacket: <<<send packet: AA 0C 05 00 00 00 40 01 00 AE
2024-05-20 10:34:10,857 INFO: AciHostCLI continuously_read: >>>receive packet: AA 06 34 00 40 01 10 00 01 01 53 93 7A F1 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2024-05-20 10:34:10,857 INFO: Parser eventParser: syncWord: AA,seqn: 06,len: 52,opcode: 0140,params: [10 00 01 01 53 93 7A F1 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00], check_sum: 1E
2024-05-20 10:34:10,858 INFO: Parser eventParser: event name: APP_EVENT_LE_AUDIO_SCAN_INFO
2024-05-20 10:34:10,859 INFO: Parser eventParser: event_type: [10 00]
2024-05-20 10:34:10,860 INFO: Parser eventParser: addr_type: [01]
2024-05-20 10:34:10,860 INFO: Parser eventParser: addr: [01 53 93 7A F1 04]
2024-05-20 10:34:10,861 INFO: Parser eventParser: name_len: [00]
2024-05-20 10:34:10,861 INFO: Parser eventParser: name: [00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
2024-05-20 10:34:10,862 INFO: Parser eventParser: name:
2024-05-20 10:34:10,862 INFO: Packet sendPacket: <<<send packet: AA 0D 05 00 00 00 40 01 00 AD
2024-05-20 10:34:10,873 INFO: AciHostCLI continuously_read: >>>receive packet: AA 07 34 00 40 01 10 00 01 1F 86 5A 27 51 34 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2024-05-20 10:34:10,874 INFO: Parser eventParser: syncWord: AA,seqn: 07,len: 52,opcode: 0140,params: [10 00 01 1F 86 5A 27 51 34 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00], check_sum: C8
2024-05-20 10:34:10,874 INFO: Parser eventParser: event name: APP_EVENT_LE_AUDIO_SCAN_INFO
2024-05-20 10:34:10,875 INFO: Parser eventParser: event_type: [10 00]
2024-05-20 10:34:10,876 INFO: Parser eventParser: addr_type: [01]
2024-05-20 10:34:10,876 INFO: Parser eventParser: addr: [1F 86 5A 27 51 34]
2024-05-20 10:34:10,877 INFO: Parser eventParser: name_len: [00]
2024-05-20 10:34:10,877 INFO: Parser eventParser: name: [00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
2024-05-20 10:34:10,878 INFO: Parser eventParser: name:
2024-05-20 10:34:10,879 INFO: Packet sendPacket: <<<send packet: AA 0E 05 00 00 00 40 01 00 AC
2024-05-20 10:34:10,889 INFO: AciHostCLI continuously_read: >>>receive packet: AA 08 34 00 40 01 01 00 00 01 23 15 DD AA DD 0F 38 37 37 33 45 53 4C 5F 64 61 6E 6E 69 5F 52 00
2024-05-20 10:34:10,890 INFO: Parser eventParser: syncWord: AA,seqn: 08,len: 52,opcode: 0140,params: [01 00 00 01 23 15 DD AA DD 0F 38 37 37 33 45 53 4C 5F 64 61 6E 6E 69 5F 52 00 00 00 00 00 00 00], check_sum: FF
2024-05-20 10:34:10,890 INFO: Parser eventParser: event name: APP_EVENT_LE_AUDIO_SCAN_INFO
2024-05-20 10:34:10,891 INFO: Parser eventParser: event_type: [01 00]
2024-05-20 10:34:10,892 INFO: Parser eventParser: addr_type: [00]
2024-05-20 10:34:10,893 INFO: Parser eventParser: addr: [01 23 15 DD AA DD]
2024-05-20 10:34:10,894 INFO: Parser eventParser: name_len: [0F]
2024-05-20 10:34:10,895 INFO: Parser eventParser: name: [38 37 37 33 45 53 4C 5F 64 61 6E 6E 69 5F 52 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
2024-05-20 10:34:10,895 INFO: Parser eventParser: name: 8773ESL_danni_R
ACI Host CLI Test: Initiate Connection

By entering the le conn_idx command, it is possible to list all scanned devices on the ACI Host CLI Tool. After entering the index of the device to connect with, the ACI Device will initiate a connection with that device, as well as automatically pair and discover services. The initiation of a connection is actually triggered through the CMD_LE_CREATE_CONN command.

../../../_images/bt_audio_trx_ble_create_conn.png

BLE Initiate Connection

2024-05-20 10:34:22,119 INFO: input command: le conn_idx
2024-05-20 10:34:22,119 INFO: Parser cmdParser: device index: 0 addr_type 1 bd_addr: 0A B2 8E 26 D5 68 , name:
2024-05-20 10:34:22,120 INFO: Parser cmdParser: device index: 1 addr_type 1 bd_addr: 10 EF E9 32 1D C9 , name:
2024-05-20 10:34:22,120 INFO: Parser cmdParser: device index: 2 addr_type 1 bd_addr: 01 53 93 7A F1 04 , name:
2024-05-20 10:34:22,121 INFO: Parser cmdParser: device index: 3 addr_type 1 bd_addr: 1F 86 5A 27 51 34 , name:
2024-05-20 10:34:22,122 INFO: Parser cmdParser: device index: 4 addr_type 0 bd_addr: 01 23 15 DD AA DD , name: 8773ESL_danni_R

2024-05-20 10:34:43,692 INFO: Parser cmdParser: input dev_index: 4
2024-05-20 10:34:43,693 INFO: Parser cmdParser: cmd opcode: 010E param: [03 00 01 23 15 DD AA DD 00 E8 03] name: CMD_LE_CREATE_CONN
2024-05-20 10:34:43,694 INFO: Packet sendPacket: <<<send packet: AA AB 0D 00 0E 01 03 00 01 23 15 DD AA DD 00 E8 03 AE
2024-05-20 10:34:44,109 INFO: AciHostCLI continuously_read: >>>receive packet: AA D4 05 00 00 00 0E 01 00 18
2024-05-20 10:34:44,110 INFO: Parser eventParser: syncWord: AA,seqn: D4,len: 5,opcode: 0000,params: [0E 01 00], check_sum: 18
2024-05-20 10:34:44,110 INFO: Parser eventParser: event name: APP_EVENT_ACK
2024-05-20 10:34:44,111 INFO: Parser eventParser: event_id: [0E 01]
2024-05-20 10:34:44,111 INFO: Parser eventParser: status: [00]
2024-05-20 10:34:44,125 INFO: AciHostCLI continuously_read: >>>receive packet: AA D5 05 00 07 01 00 02 02 1A
2024-05-20 10:34:44,128 INFO: Parser eventParser: syncWord: AA,seqn: D5,len: 5,opcode: 0107,params: [00 02 02], check_sum: 1A
2024-05-20 10:34:44,131 INFO: Parser eventParser: event name: EVENT_LE_PHY_UPD
2024-05-20 10:34:44,134 INFO: Parser eventParser: app_link_id: [00]
2024-05-20 10:34:44,135 INFO: Parser eventParser: tx_phy: [02]
2024-05-20 10:34:44,135 INFO: Parser eventParser: rx_phy: [02]
2024-05-20 10:34:44,136 INFO: Packet sendPacket: <<<send packet: AA AC 05 00 00 00 07 01 00 47
2024-05-20 10:34:44,141 INFO: AciHostCLI continuously_read: >>>receive packet: AA D6 03 00 00 01 00 26
2024-05-20 10:34:44,144 INFO: Parser eventParser: syncWord: AA,seqn: D6,len: 3,opcode: 0100,params: [00], check_sum: 26
2024-05-20 10:34:44,145 INFO: Parser eventParser: event name: APP_EVENT_LE_CONNECTED
2024-05-20 10:34:44,146 INFO: Parser eventParser: link_id: [00]
2024-05-20 10:34:44,146 INFO: Packet sendPacket: <<<send packet: AA AD 05 00 00 00 00 01 00 4D
2024-05-20 10:34:44,157 INFO: AciHostCLI continuously_read: >>>receive packet: AA D7 14 00 43 80 02 00 05 00 01 00 01 23 15 DD AA DD 18 00 00 00 F4 01 A0
2024-05-20 10:34:44,159 INFO: Parser eventParser: syncWord: AA,seqn: D7,len: 20,opcode: 8043,params: [02 00 05 00 01 00 01 23 15 DD AA DD 18 00 00 00 F4 01], check_sum: A0
2024-05-20 10:34:44,161 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_STATE
2024-05-20 10:34:44,162 INFO: Parser eventParser: link_state: [02]
2024-05-20 10:34:44,163 INFO: Parser eventParser: app_link_id: [00]
2024-05-20 10:34:44,166 INFO: Parser eventParser: conn_handle: [05 00]
2024-05-20 10:34:44,167 INFO: Parser eventParser: role: [01]
2024-05-20 10:34:44,167 INFO: Parser eventParser: remote addr type: [00]
2024-05-20 10:34:44,168 INFO: Parser eventParser: remote addr: [01 23 15 DD AA DD]
2024-05-20 10:34:44,168 INFO: Parser eventParser: connInterval: [18 00]
2024-05-20 10:34:44,170 INFO: Parser eventParser: connLatency: [00 00]
2024-05-20 10:34:44,171 INFO: Parser eventParser: supTimeout: [F4 01]
2024-05-20 10:34:44,174 INFO: Packet sendPacket: <<<send packet: AA AE 05 00 00 00 43 80 00 8A
2024-05-20 10:34:44,189 INFO: AciHostCLI continuously_read: >>>receive packet: AA D8 05 00 41 80 00 F4 00 6E
2024-05-20 10:34:44,191 INFO: Parser eventParser: syncWord: AA,seqn: D8,len: 5,opcode: 8041,params: [00 F4 00], check_sum: 6E
2024-05-20 10:34:44,194 INFO: Parser eventParser: event name: EVENT_XM_LE_MTU
2024-05-20 10:34:44,196 INFO: Parser eventParser: mtu_size: [00 F4]
2024-05-20 10:34:44,200 INFO: Packet sendPacket: <<<send packet: AA AF 05 00 00 00 41 80 00 8B
2024-05-20 10:34:44,237 INFO: AciHostCLI continuously_read: >>>receive packet: AA D9 0B 00 06 01 00 FB 00 28 04 FB 00 28 04 C7
2024-05-20 10:34:44,238 INFO: Parser eventParser: syncWord: AA,seqn: D9,len: 11,opcode: 0106,params: [00 FB 00 28 04 FB 00 28 04], check_sum: C7
2024-05-20 10:34:44,244 INFO: Parser eventParser: event name: EVENT_LE_SET_DATA_LEN
2024-05-20 10:34:44,245 INFO: Parser eventParser: app_link_id: [00]
2024-05-20 10:34:44,246 INFO: Parser eventParser: max_tx_octets: [FB 00]
2024-05-20 10:34:44,246 INFO: Parser eventParser: max_tx_time: [28 04]
2024-05-20 10:34:44,247 INFO: Parser eventParser: max_rx_octets: [FB 00]
2024-05-20 10:34:44,248 INFO: Parser eventParser: max_rx_time: [28 04]
2024-05-20 10:34:44,249 INFO: Packet sendPacket: <<<send packet: AA B0 05 00 00 00 06 01 00 44
2024-05-20 10:34:44,540 INFO: AciHostCLI continuously_read: >>>receive packet: AA DA 0A 00 44 80 00 00 18 00 0F 00 F4 01 3C
2024-05-20 10:34:44,541 INFO: Parser eventParser: syncWord: AA,seqn: DA,len: 10,opcode: 8044,params: [00 00 18 00 0F 00 F4 01], check_sum: 3C
2024-05-20 10:34:44,543 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_PARAM
2024-05-20 10:34:44,548 INFO: Parser eventParser: app_link_id: [00]
2024-05-20 10:34:44,549 INFO: Parser eventParser: res: [00]
2024-05-20 10:34:44,550 INFO: Parser eventParser: connInterval: [18 00]
2024-05-20 10:34:44,550 INFO: Parser eventParser: connLatency: [0F 00]
2024-05-20 10:34:44,551 INFO: Parser eventParser: supTimeout: [F4 01]
2024-05-20 10:34:44,552 INFO: Packet sendPacket: <<<send packet: AA B1 05 00 00 00 44 80 00 86
2024-05-20 10:34:45,690 INFO: AciHostCLI continuously_read: >>>receive packet: AA DB 0B 00 02 01 00 00 00 01 23 15 DD AA DD 7A
2024-05-20 10:34:45,691 INFO: Parser eventParser: syncWord: AA,seqn: DB,len: 11,opcode: 0102,params: [00 00 00 01 23 15 DD AA DD], check_sum: 7A
2024-05-20 10:34:45,693 INFO: Parser eventParser: event name: APP_EVENT_LE_PAIR_STATUS
2024-05-20 10:34:45,696 INFO: Parser eventParser: link_id: [00]
2024-05-20 10:34:45,697 INFO: Parser eventParser: cause: [00 00]
2024-05-20 10:34:45,698 INFO: Parser eventParser: resolved_addr: [01 23 15 DD AA DD]
2024-05-20 10:34:45,698 INFO: Packet sendPacket: <<<send packet: AA B2 05 00 00 00 02 01 00 46
2024-05-20 10:34:46,473 INFO: AciHostCLI continuously_read: >>>receive packet: AA DC 0A 00 44 80 00 00 06 00 00 00 F4 01 5B
2024-05-20 10:34:46,475 INFO: Parser eventParser: syncWord: AA,seqn: DC,len: 10,opcode: 8044,params: [00 00 06 00 00 00 F4 01], check_sum: 5B
2024-05-20 10:34:46,476 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_PARAM
2024-05-20 10:34:46,480 INFO: Parser eventParser: app_link_id: [00]
2024-05-20 10:34:46,481 INFO: Parser eventParser: res: [00]
2024-05-20 10:34:46,482 INFO: Parser eventParser: connInterval: [06 00]
2024-05-20 10:34:46,484 INFO: Parser eventParser: connLatency: [00 00]
2024-05-20 10:34:46,484 INFO: Parser eventParser: supTimeout: [F4 01]
2024-05-20 10:34:46,485 INFO: Packet sendPacket: <<<send packet: AA B3 05 00 00 00 44 80 00 84
2024-05-20 10:34:46,888 INFO: AciHostCLI continuously_read: >>>receive packet: AA DD 04 00 10 01 00 00 0E
2024-05-20 10:34:46,889 INFO: Parser eventParser: syncWord: AA,seqn: DD,len: 4,opcode: 0110,params: [00 00], check_sum: 0E
2024-05-20 10:34:46,891 INFO: Parser eventParser: event name: EVENT_ANCS_REGISTER_COMPLETE
2024-05-20 10:34:46,895 INFO: Parser eventParser: app_link_id: [00]
2024-05-20 10:34:46,895 INFO: Parser eventParser: result: [00]
2024-05-20 10:34:46,896 INFO: Packet sendPacket: <<<send packet: AA B4 05 00 00 00 10 01 00 36
2024-05-20 10:34:47,000 INFO: AciHostCLI continuously_read: >>>receive packet: AA DE 0A 00 44 80 00 00 18 00 00 00 F4 01 47
2024-05-20 10:34:47,001 INFO: Parser eventParser: syncWord: AA,seqn: DE,len: 10,opcode: 8044,params: [00 00 18 00 00 00 F4 01], check_sum: 47
2024-05-20 10:34:47,002 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_PARAM
2024-05-20 10:34:47,006 INFO: Parser eventParser: app_link_id: [00]
2024-05-20 10:34:47,006 INFO: Parser eventParser: res: [00]
2024-05-20 10:34:47,007 INFO: Parser eventParser: connInterval: [18 00]
2024-05-20 10:34:47,007 INFO: Parser eventParser: connLatency: [00 00]
2024-05-20 10:34:47,009 INFO: Parser eventParser: supTimeout: [F4 01]
2024-05-20 10:34:47,010 INFO: Packet sendPacket: <<<send packet: AA B5 05 00 00 00 44 80 00 82
ACI Host CLI Test: Operate White List

Using the white list, the ACI Device can only receive broadcasts from devices in the white list, or only establish connections with devices in the white list. The CMD_LE_MODIFY_WHITELIST command allows adding or removing specific devices to and from the white list, and to clear the white list. The CMD_LE_MODIFY_WHITELIST_BY_IDX command allows adding the device with the specified index in the bond list to the white list, or removing it from the white list.

Note

These commands shall not be used when: Any advertising filter policy uses the white list and advertising is enabled, the scanning filter policy uses the white list and scanning is enabled, or the initiator filter policy uses the white list and an HCI_LE_Create_Connection or HCI_LE_Extended_Create_Connection command is outstanding.

../../../_images/bt_audio_trx_ble_whitelist.png

BLE White List

2024-05-20 10:37:01,539 INFO: input command: whitelist_id add_idx0
2024-05-20 10:37:01,539 INFO: Parser cmdParser: cmd opcode: 0162 param: [01 00] name: CMD_LE_MODIFY_WIHITLIST_BY_IDX
2024-05-20 10:37:01,540 INFO: Packet sendPacket: <<<send packet: AA 01 04 00 62 01 01 00 97
2024-05-20 10:37:01,561 INFO: AciHostCLI continuously_read: >>>receive packet: AA E6 05 00 00 00 62 01 00 B2
2024-05-20 10:37:01,563 INFO: Parser eventParser: syncWord: AA,seqn: E6,len: 5,opcode: 0000,params: [62 01 00], check_sum: B2
2024-05-20 10:37:01,564 INFO: Parser eventParser: event name: APP_EVENT_ACK
2024-05-20 10:37:01,564 INFO: Parser eventParser: event_id: [62 01]
2024-05-20 10:37:01,565 INFO: Parser eventParser: status: [00]
2024-05-20 10:37:09,630 INFO: input command: whitelist_id rmv_idx0
2024-05-20 10:37:09,631 INFO: Parser cmdParser: cmd opcode: 0162 param: [02 00] name: CMD_LE_MODIFY_WIHITLIST_BY_IDX
2024-05-20 10:37:09,632 INFO: Packet sendPacket: <<<send packet: AA 02 04 00 62 01 02 00 95
2024-05-20 10:37:09,711 WARNING: AciHostCLI retrans: retransmit command whitelist_id rmv_idx0 due to ack timeout! retry: 1
2024-05-20 10:37:09,712 INFO: Packet sendPacket: <<<send packet: AA 02 04 00 62 01 02 00 95
2024-05-20 10:37:09,723 INFO: AciHostCLI continuously_read: >>>receive packet: AA E7 05 00 00 00 62 01 00 B1
2024-05-20 10:37:09,724 INFO: Parser eventParser: syncWord: AA,seqn: E7,len: 5,opcode: 0000,params: [62 01 00], check_sum: B1
2024-05-20 10:37:09,725 INFO: Parser eventParser: event name: APP_EVENT_ACK
2024-05-20 10:37:09,725 INFO: Parser eventParser: event_id: [62 01]
2024-05-20 10:37:09,726 INFO: Parser eventParser: status: [00]
ACI Host CLI Test: Operate Resolving List

Similar to the white list, if the device needs to use the link layer privacy mechanism, a resolving list needs to be stored on the Controller. Using CMD_LE_MODIFY_RESOLVELIST_BY_IDX, device with specified index in the bond list can be added to or removed from the resolving list, and the entire resolving list can be cleared.

To enable/disable resolution of resolvable private addresses in the Controller, please use the command CMD_LE_SET_RESOLUTION.

Note

These commands shall not be used when:

  • Advertising (Other than periodic advertising) is enabled.

  • Scanning is enabled.

  • HCI_LE_Create_Connection, HCI_LE_Extended_Create_Connection, or HCI_LE_Periodic_Advertising_Create_Sync command is outstanding.

../../../_images/bt_audio_trx_ble_resolvinglist.png

BLE Resolving List

2024-05-20 14:02:09,954 INFO: input command: resolvlist_id add_idx0
2024-05-20 14:02:09,955 INFO: Parser cmdParser: cmd opcode: 0163 param: [01 00] name: CMD_LE_MODIFY_RESOLVELIST_BY_IDX
2024-05-20 14:02:09,956 INFO: Packet sendPacket: <<<send packet: AA 01 04 00 63 01 01 00 96
2024-05-20 14:02:10,028 WARNING: AciHostCLI retrans: retransmit command resolvlist_id add_idx0 due to ack timeout! retry: 1
2024-05-20 14:02:10,029 INFO: Packet sendPacket: <<<send packet: AA 01 04 00 63 01 01 00 96
2024-05-20 14:02:10,042 INFO: AciHostCLI continuously_read: >>>receive packet: AA EC 05 00 00 00 63 01 00 AB
2024-05-20 14:02:10,043 INFO: Parser eventParser: syncWord: AA,seqn: EC,len: 5,opcode: 0000,params: [63 01 00], check_sum: AB
2024-05-20 14:02:10,043 INFO: Parser eventParser: event name: APP_EVENT_ACK
2024-05-20 14:02:10,044 INFO: Parser eventParser: event_id: [63 01]
2024-05-20 14:02:10,044 INFO: Parser eventParser: status: [00]
2024-05-20 14:02:18,897 INFO: input command: le_resolution enable
2024-05-20 14:02:18,897 INFO: Parser cmdParser: cmd opcode: 0164 param: [01] name: CMD_LE_SET_RESOLUTION
2024-05-20 14:02:18,898 INFO: Packet sendPacket: <<<send packet: AA 02 03 00 64 01 01 95
2024-05-20 14:02:18,973 WARNING: AciHostCLI retrans: retransmit command le_resolution enable due to ack timeout! retry: 1
2024-05-20 14:02:18,974 INFO: Packet sendPacket: <<<send packet: AA 02 03 00 64 01 01 95
2024-05-20 14:02:18,987 INFO: AciHostCLI continuously_read: >>>receive packet: AA ED 05 00 00 00 64 01 00 A9
2024-05-20 14:02:18,987 INFO: Parser eventParser: syncWord: AA,seqn: ED,len: 5,opcode: 0000,params: [64 01 00], check_sum: A9
2024-05-20 14:02:18,988 INFO: Parser eventParser: event name: APP_EVENT_ACK
2024-05-20 14:02:18,988 INFO: Parser eventParser: event_id: [64 01]
2024-05-20 14:02:18,989 INFO: Parser eventParser: status: [00]
2024-05-20 14:02:22,360 INFO: input command: le_resolution disable
2024-05-20 14:02:22,361 INFO: Parser cmdParser: cmd opcode: 0164 param: [00] name: CMD_LE_SET_RESOLUTION
2024-05-20 14:02:22,362 INFO: Packet sendPacket: <<<send packet: AA 03 03 00 64 01 00 95
2024-05-20 14:02:22,433 WARNING: AciHostCLI retrans: retransmit command le_resolution disable due to ack timeout! retry: 1
2024-05-20 14:02:22,434 INFO: Packet sendPacket: <<<send packet: AA 03 03 00 64 01 00 95
2024-05-20 14:02:22,453 INFO: AciHostCLI continuously_read: >>>receive packet: AA EE 05 00 00 00 64 01 00 A8
2024-05-20 14:02:22,454 INFO: Parser eventParser: syncWord: AA,seqn: EE,len: 5,opcode: 0000,params: [64 01 00], check_sum: A8
2024-05-20 14:02:22,454 INFO: Parser eventParser: event name: APP_EVENT_ACK
2024-05-20 14:02:22,455 INFO: Parser eventParser: event_id: [64 01]
2024-05-20 14:02:22,455 INFO: Parser eventParser: status: [00]
2024-05-20 14:02:30,731 INFO: input command: resolvlist_id rmv_idx0
2024-05-20 14:02:30,732 INFO: Parser cmdParser: cmd opcode: 0163 param: [02 00] name: CMD_LE_MODIFY_RESOLVELIST_BY_IDX
2024-05-20 14:02:30,733 INFO: Packet sendPacket: <<<send packet: AA 04 04 00 63 01 02 00 92
2024-05-20 14:02:30,806 WARNING: AciHostCLI retrans: retransmit command resolvlist_id rmv_idx0 due to ack timeout! retry: 1
2024-05-20 14:02:30,807 INFO: Packet sendPacket: <<<send packet: AA 04 04 00 63 01 02 00 92
2024-05-20 14:02:30,824 INFO: AciHostCLI continuously_read: >>>receive packet: AA EF 05 00 00 00 63 01 00 A8
2024-05-20 14:02:30,824 INFO: Parser eventParser: syncWord: AA,seqn: EF,len: 5,opcode: 0000,params: [63 01 00], check_sum: A8
2024-05-20 14:02:30,825 INFO: Parser eventParser: event name: APP_EVENT_ACK
2024-05-20 14:02:30,825 INFO: Parser eventParser: event_id: [63 01]
2024-05-20 14:02:30,825 INFO: Parser eventParser: status: [00]

Record Function

Bluetooth Audio Transceiver application supports the recording of many audio formats such as PCM, mSBC, SBC, and OPUS. Before using, please configure MIC 1 on the EVB and connect an external MIC.

../../../_images/bt_audio_trx_recording_seq.png

Record Process

ACI Host CLI Test: Record

The ACI Host CLI CMD for recording are rc start and rc stop, and the corresponding UART CMD packet.

ACI Host CLI CMD for Record

Command

Parameters

ACI Host CLI CMD

CMD_XM_START_RECORD = 0x8082

type = AUDIO_FORMAT_TYPE_PCM(0), sample_rate = 0x00003E80, frame_len = 0x0400, chann_num 1, bit_width = 0x10

rc start_pcm

CMD_XM_STOP_RECORD = 0x8503

None

rc stop

  1. ACI Host CLI test: Start recording PCM.

    An example of recording PCM is provided here. Please refer to ACI_CMD_XM_START_RECORD for recording more formats.

    2023-04-03 17:12:12,558 INFO: input command: rc start_pcm
    2023-04-03 17:12:12,559 INFO: Parser cmdParser: cmd opcode: 8082 param: [00 80 3E 00 00 00 04 01 10] name: CMD_XM_START_RECORD
    2023-04-03 17:12:12,560 INFO: Packet sendPacket: <<<send packet: AA 01 0B 00 02 85 00 80 3E 00 00 00 04 01 10 9A
    2023-04-03 17:12:12,572 INFO: AciHostCLI continuously_read: >>>receive packet: AA 03 05 00 00 00 02 85 00 71
    2023-04-03 17:12:12,577 INFO: Parser eventParser: syncWord: AA,seqn: 03,len: 5,opcode: 0000,params: [02 85 00], check_sum: 71
    2023-04-03 17:12:12,578 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-03 17:12:12,579 INFO: Parser eventParser: event_id: [02 85]
    2023-04-03 17:12:12,579 INFO: Parser eventParser: status: [00]
    2023-04-03 17:12:12,849 INFO: AciHostCLI continuously_read: >>>receive packet: AA 04 02 04 02 85 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2023-04-03 17:12:12,850 INFO: Parser eventParser: syncWord: AA,seqn: 04,len: 1026,opcode: 8082,params: [00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00], check_sum: B1
    2023-04-03 17:12:12,850 INFO: Parser eventParser: event name: EVENT_XM_RECORDING_DATA
    2023-04-03 17:12:12,878 INFO: AciHostCLI continuously_read: >>>receive packet: AA 05 02 04 02 85 FD FF F8 FF F2 FF F3 FF F5 FF F2 FF F2 FF F3 FF EE FF ED FF FE FF 08 00 01 00
    2023-04-03 17:12:12,879 INFO: Parser eventParser: syncWord: AA,seqn: 05,len: 1026,opcode: 8082,params: [FD FF F8 FF F2 FF F3 FF F5 FF F2 FF F2 FF F3 FF EE FF ED FF FE FF 08 00 01 00 06 00 1B 00 27 00], check_sum: 9E
    2023-04-03 17:12:12,880 INFO: Parser eventParser: event name: EVENT_XM_RECORDING_DATA
    
  2. ACI Host CLI test: Stop recording.

    2023-04-03 17:12:12,558 INFO: input command: rc stop
    2023-04-03 17:14:52,717 INFO: Parser cmdParser: cmd opcode: 8503 param: [] name: CMD_XM_STOP_RECORD
    2023-04-03 17:14:52,718 INFO: Packet sendPacket: <<<send packet: AA 02 02 00 03 85 74
    2023-04-03 17:14:52,725 INFO: AciHostCLI continuously_read: >>>receive packet: AA BF 05 00 00 00 03 85 00 B4
    2023-04-03 17:14:52,730 INFO: Parser eventParser: syncWord: AA,seqn: BF,len: 5,opcode: 0000,params: [03 85 00], check_sum: B4
    2023-04-03 17:14:52,731 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-03 17:14:52,732 INFO: Parser eventParser: event_id: [03 85]
    2023-04-03 17:14:52,733 INFO: Parser eventParser: status: [00]
    

LE Audio Function

The current version of Bluetooth Audio Transceiver application includes support for LE Audio functionality. LE Audio typically utilizes BIS or CIS to transmit audio data. In the present version, BIS has been implemented. Please note that the LE Audio module only offers protocol and data pathway. Users need to supply data to the LE Audio module by either the transparent transmission module A2DP Transparent Transmission (BIS Output) or the recording module, enabling the transmission of ISO audio data to external devices.

LE Audio Initiator

Initiator, which is described in CAP specification, always operates in BAP Unicast Client role, BAP Broadcast Source role, BAP Scan Assistant role, or CCP Call Control Server role.

Initiator General ACI Host CLI Test

For CIS, it is necessary to establish an LE link, whereas for BIS, it is not mandatory. This chapter delineates the process of establishing an LE link with devices supporting LE Audio Acceptor.

To scan nearby devices supporting LE Audio, ACI Host sends the CMD_LEA_SCAN to enable the scan procedure. The current scan results can be displayed by entering the le conn_idx command. If the device expected to be connected is a stereo headset, directly input the serial number of the headset to establish the connection and complete the pairing. If the device to be connected is a pair of RWS BUDS, input the serial number of either the left or right BUD, and Bluetooth Audio Transceiver application will establish connections for both BUDS simultaneously. Upon completion of the LE Audio-related service discovery, Bluetooth Audio Transceiver application will report the EVENT_LE_AUDIO_BAP_DISCOVERY_DONE event.

ACI Host CLI CMD for LE Audio Initiator

Command

Parameters

ACI Host CLI CMD

CMD_LEA_SCAN(0x3023)

action = start(0x00)

lea_scan start

CMD_LEA_SCAN(0x3023)

action = stop(0x01)

lea_scan stop

LE Audio connection process:

../../../_images/bt_audio_trx_line_in_src_play_cis_conn.png

LE Audio Connection Process

  1. ACI Host CLI test: Start scanning LE Audio devices.

    2023-07-17 15:59:35,770 INFO: input command: lea_scan start
    2023-07-17 15:59:35,771 INFO: Parser cmdParser: cmd opcode: 3023 param: [00] name: CMD_LEA_SCAN
    2023-07-17 15:59:35,771 INFO: Packet sendPacket: <<<send packet: AA 04 03 00 23 30 00 A6
    2023-07-17 15:59:35,779 INFO: AciHostCLI continuously_read: >>>receive packet: AA 04 05 00 00 00 23 30 00 A4
    2023-07-17 15:59:35,783 INFO: Parser eventParser: syncWord: AA,seqn: 04,len: 5,opcode: 0000,params: [23 30 00], check_sum: A4
    2023-07-17 15:59:35,784 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-17 15:59:35,784 INFO: Parser eventParser: event_id: [23 30]
    2023-07-17 15:59:35,786 INFO: Parser eventParser: status: [00]
    2023-07-17 15:59:39,470 INFO: AciHostCLI continuously_read: >>>receive packet: AA 05 34 00 0B 01 01 00 01 61 6C 0D 97 48 E0 12 38 37 36 33 45 46 4C 5F 35 76 5F 52 28 6D 73 62
    2023-07-17 15:59:39,470 INFO: Parser eventParser: syncWord: AA,seqn: 05,len: 52,opcode: 010B,params: [01 00 01 61 6C 0D 97 48 E0 12 38 37 36 33 45 46 4C 5F 35 76 5F 52 28 6D 73 62 63 29 00 00 00 00], check_sum: AE
    2023-07-17 15:59:39,471 INFO: Parser eventParser: event name: APP_EVENT_LE_AUDIO_SCAN_INFO
    2023-07-17 15:59:39,471 INFO: Parser eventParser: event_type: [01 00]
    2023-07-17 15:59:39,472 INFO: Parser eventParser: addr_type: [01]
    2023-07-17 15:59:39,472 INFO: Parser eventParser: addr: [61 6C 0D 97 48 E0]
    2023-07-17 15:59:39,472 INFO: Parser eventParser: name_len: [12]
    2023-07-17 15:59:39,473 INFO: Parser eventParser: name: [38 37 36 33 45 46 4C 5F 35 76 5F 52 28 6D 73 62 63 29 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
    2023-07-17 15:59:39,473 INFO: Parser eventParser: name: 8763EFL_5v_R(msbc)
    2023-07-17 15:59:39,474 INFO: Packet sendPacket: <<<send packet: AA 05 05 00 00 00 0B 01 00 EA
    2023-07-17 15:59:39,709 INFO: AciHostCLI continuously_read: >>>receive packet: AA 06 34 00 0B 01 01 00 01 A0 DE 13 53 C0 F1 12 38 37 36 33 45 46 4C 5F 35 76 5F 4C 28 6D 73 62
    2023-07-17 15:59:39,710 INFO: Parser eventParser: syncWord: AA,seqn: 06,len: 52,opcode: 010B,params: [01 00 01 A0 DE 13 53 C0 F1 12 38 37 36 33 45 46 4C 5F 35 76 5F 4C 28 6D 73 62 63 29 00 00 00 00], check_sum: B7
    2023-07-17 15:59:39,711 INFO: Parser eventParser: event name: APP_EVENT_LE_AUDIO_SCAN_INFO
    2023-07-17 15:59:39,711 INFO: Parser eventParser: event_type: [01 00]
    2023-07-17 15:59:39,712 INFO: Parser eventParser: addr_type: [01]
    2023-07-17 15:59:39,712 INFO: Parser eventParser: addr: [A0 DE 13 53 C0 F1]
    2023-07-17 15:59:39,713 INFO: Parser eventParser: name_len: [12]
    2023-07-17 15:59:39,713 INFO: Parser eventParser: name: [38 37 36 33 45 46 4C 5F 35 76 5F 4C 28 6D 73 62 63 29 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
    2023-07-17 15:59:39,714 INFO: Parser eventParser: name: 8763EFL_5v_L(msbc)
    2023-07-17 15:59:39,714 INFO: Packet sendPacket: <<<send packet: AA 06 05 00 00 00 0B 01 00 E9
    
  2. ACI Host CLI test: Stop scanning and showing results.

    2023-07-17 15:59:49,718 INFO: input command: lea_scan stop
    2023-07-17 15:59:49,719 INFO: Parser cmdParser: cmd opcode: 3023 param: [01] name: CMD_LEA_SCAN
    2023-07-17 15:59:49,719 INFO: Packet sendPacket: <<<send packet: AA 07 03 00 23 30 01 A2
    2023-07-17 15:59:49,726 INFO: AciHostCLI continuously_read: >>>receive packet: AA 07 05 00 00 00 23 30 00 A1
    2023-07-17 15:59:49,727 INFO: Parser eventParser: syncWord: AA,seqn: 07,len: 5,opcode: 0000,params: [23 30 00], check_sum: A1
    2023-07-17 15:59:49,730 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-17 15:59:49,731 INFO: Parser eventParser: event_id: [23 30]
    2023-07-17 15:59:49,732 INFO: Parser eventParser: status: [00]
    2023-07-17 15:59:52,770 INFO: input command: le conn_idx
    2023-07-17 15:59:52,770 INFO: Parser cmdParser: device index: 0 addr_type 1 bd_addr: 61 6C 0D 97 48 E0 , name: 8763EFL_5v_R(msbc)
    2023-07-17 15:59:52,771 INFO: Parser cmdParser: device index: 1 addr_type 1 bd_addr: A0 DE 13 53 C0 F1 , name: 8763EFL_5v_L(msbc)
    
  3. ACI Host CLI test: Input the device index to initiate the connection procedure.

    2023-07-17 15:59:58,755 INFO: Parser cmdParser: input dev_index: 0
    2023-07-17 15:59:58,756 INFO: Parser cmdParser: cmd opcode: 010E param: [03 01 61 6C 0D 97 48 E0 00 E8 03] name: CMD_LE_CREATE_CONN
    2023-07-17 15:59:58,756 INFO: Packet sendPacket: <<<send packet: AA 08 0D 00 0E 01 03 01 61 6C 0D 97 48 E0 00 E8 03 54
    2023-07-17 15:59:58,774 INFO: AciHostCLI continuously_read: >>>receive packet: AA 08 05 00 00 00 0E 01 00 E4
    2023-07-17 15:59:58,775 INFO: Parser eventParser: syncWord: AA,seqn: 08,len: 5,opcode: 0000,params: [0E 01 00], check_sum: E4
    2023-07-17 15:59:58,776 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-17 15:59:58,779 INFO: Parser eventParser: event_id: [0E 01]
    2023-07-17 15:59:58,780 INFO: Parser eventParser: status: [00]
    2023-07-17 15:59:58,798 INFO: AciHostCLI continuously_read: >>>receive packet: AA 09 05 00 07 01 00 02 02 E6
    2023-07-17 15:59:58,799 INFO: Parser eventParser: syncWord: AA,seqn: 09,len: 5,opcode: 0107,params: [00 02 02], check_sum: E6
    2023-07-17 15:59:58,799 INFO: Parser eventParser: event name: EVENT_LE_PHY_UPD
    2023-07-17 15:59:58,800 INFO: Parser eventParser: app_link_id: [00]
    2023-07-17 15:59:58,800 INFO: Parser eventParser: tx_phy: [02]
    2023-07-17 15:59:58,801 INFO: Parser eventParser: rx_phy: [02]
    2023-07-17 15:59:58,801 INFO: Packet sendPacket: <<<send packet: AA 09 05 00 00 00 07 01 00 EA
    2023-07-17 15:59:58,814 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0A 03 00 00 01 00 F2
    2023-07-17 15:59:58,814 INFO: Parser eventParser: syncWord: AA,seqn: 0A,len: 3,opcode: 0100,params: [00], check_sum: F2
    2023-07-17 15:59:58,815 INFO: Parser eventParser: event name: APP_EVENT_LE_CONNECTED
    2023-07-17 15:59:58,815 INFO: Parser eventParser: link_id: [00]
    2023-07-17 15:59:58,816 INFO: Packet sendPacket: <<<send packet: AA 0A 05 00 00 00 00 01 00 F0
    2023-07-17 15:59:58,830 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0B 14 00 43 80 02 00 05 00 01 01 61 6C 0D 97 48 E0 20 00 00 00 E8 03 71
    2023-07-17 15:59:58,831 INFO: Parser eventParser: syncWord: AA,seqn: 0B,len: 20,opcode: 8043,params: [02 00 05 00 01 01 61 6C 0D 97 48 E0 20 00 00 00 E8 03], check_sum: 71
    2023-07-17 15:59:58,831 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_STATE
    2023-07-17 15:59:58,832 INFO: Parser eventParser: link_state: [02]
    2023-07-17 15:59:58,832 INFO: Parser eventParser: app_link_id: [00]
    2023-07-17 15:59:58,833 INFO: Parser eventParser: conn_handle: [05 00]
    2023-07-17 15:59:58,833 INFO: Parser eventParser: role: [01]
    2023-07-17 15:59:58,834 INFO: Parser eventParser: remote addr type: [01]
    2023-07-17 15:59:58,834 INFO: Parser eventParser: remote addr: [61 6C 0D 97 48 E0]
    2023-07-17 15:59:58,834 INFO: Parser eventParser: connInterval: [20 00]
    2023-07-17 15:59:58,835 INFO: Parser eventParser: connLatency: [00 00]
    2023-07-17 15:59:58,835 INFO: Parser eventParser: supTimeout: [E8 03]
    2023-07-17 15:59:58,835 INFO: Packet sendPacket: <<<send packet: AA 0B 05 00 00 00 43 80 00 2D
    2023-07-17 15:59:58,845 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0C 05 00 41 80 00 F4 00 3A
    2023-07-17 15:59:58,846 INFO: Parser eventParser: syncWord: AA,seqn: 0C,len: 5,opcode: 8041,params: [00 F4 00], check_sum: 3A
    2023-07-17 15:59:58,847 INFO: Parser eventParser: event name: EVENT_XM_LE_MTU
    2023-07-17 15:59:58,847 INFO: Parser eventParser: mtu_size: [00 F4]
    2023-07-17 15:59:58,848 INFO: Packet sendPacket: <<<send packet: AA 0C 05 00 00 00 41 80 00 2E
    2023-07-17 16:00:00,299 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0D 0B 00 02 01 00 00 00 00 00 00 00 00 00 E5
    2023-07-17 16:00:00,300 INFO: Parser eventParser: syncWord: AA,seqn: 0D,len: 11,opcode: 0102,params: [00 00 00 00 00 00 00 00 00], check_sum: E5
    2023-07-17 16:00:00,301 INFO: Parser eventParser: event name: APP_EVENT_LE_PAIR_STATUS
    2023-07-17 16:00:00,301 INFO: Parser eventParser: link_id: [00]
    2023-07-17 16:00:00,302 INFO: Parser eventParser: cause: [00 00]
    2023-07-17 16:00:00,302 INFO: Parser eventParser: resolved_addr: [00 00 00 00 00 00]
    2023-07-17 16:00:00,303 INFO: Packet sendPacket: <<<send packet: AA 0D 05 00 00 00 02 01 00 EB
    2023-07-17 16:00:05,108 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0E 34 00 0B 01 01 00 01 A0 DE 13 53 C0 F1 12 38 37 36 33 45 46 4C 5F 35 76 5F 4C 28 6D 73 62
    2023-07-17 16:00:05,108 INFO: Parser eventParser: syncWord: AA,seqn: 0E,len: 52,opcode: 010B,params: [01 00 01 A0 DE 13 53 C0 F1 12 38 37 36 33 45 46 4C 5F 35 76 5F 4C 28 6D 73 62 63 29 00 00 00 00], check_sum: AF
    2023-07-17 16:00:05,109 INFO: Parser eventParser: event name: APP_EVENT_LE_AUDIO_SCAN_INFO
    2023-07-17 16:00:05,109 INFO: Parser eventParser: event_type: [01 00]
    2023-07-17 16:00:05,110 INFO: Parser eventParser: addr_type: [01]
    2023-07-17 16:00:05,110 INFO: Parser eventParser: addr: [A0 DE 13 53 C0 F1]
    2023-07-17 16:00:05,111 INFO: Parser eventParser: name_len: [12]
    2023-07-17 16:00:05,112 INFO: Parser eventParser: name: [38 37 36 33 45 46 4C 5F 35 76 5F 4C 28 6D 73 62 63 29 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
    2023-07-17 16:00:05,112 INFO: Parser eventParser: name: 8763EFL_5v_L(msbc)
    2023-07-17 16:00:05,113 INFO: Packet sendPacket: <<<send packet: AA 0E 05 00 00 00 0B 01 00 E1
    2023-07-17 16:00:05,155 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0F 05 00 07 01 01 02 02 DF
    2023-07-17 16:00:05,156 INFO: Parser eventParser: syncWord: AA,seqn: 0F,len: 5,opcode: 0107,params: [01 02 02], check_sum: DF
    2023-07-17 16:00:05,156 INFO: Parser eventParser: event name: EVENT_LE_PHY_UPD
    2023-07-17 16:00:05,157 INFO: Parser eventParser: app_link_id: [01]
    2023-07-17 16:00:05,157 INFO: Parser eventParser: tx_phy: [02]
    2023-07-17 16:00:05,158 INFO: Parser eventParser: rx_phy: [02]
    2023-07-17 16:00:05,158 INFO: Packet sendPacket: <<<send packet: AA 0F 05 00 00 00 07 01 00 E4
    2023-07-17 16:00:05,171 INFO: AciHostCLI continuously_read: >>>receive packet: AA 10 03 00 00 01 01 EB
    2023-07-17 16:00:05,172 INFO: Parser eventParser: syncWord: AA,seqn: 10,len: 3,opcode: 0100,params: [01], check_sum: EB
    2023-07-17 16:00:05,173 INFO: Parser eventParser: event name: APP_EVENT_LE_CONNECTED
    2023-07-17 16:00:05,173 INFO: Parser eventParser: link_id: [01]
    2023-07-17 16:00:05,174 INFO: Packet sendPacket: <<<send packet: AA 10 05 00 00 00 00 01 00 EA
    2023-07-17 16:00:05,187 INFO: AciHostCLI continuously_read: >>>receive packet: AA 11 14 00 43 80 02 01 06 00 01 01 A0 DE 13 53 C0 F1 64 00 00 00 F4 01 1F
    2023-07-17 16:00:05,188 INFO: Parser eventParser: syncWord: AA,seqn: 11,len: 20,opcode: 8043,params: [02 01 06 00 01 01 A0 DE 13 53 C0 F1 64 00 00 00 F4 01], check_sum: 1F
    2023-07-17 16:00:05,189 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_STATE
    2023-07-17 16:00:05,189 INFO: Parser eventParser: link_state: [02]
    2023-07-17 16:00:05,190 INFO: Parser eventParser: app_link_id: [01]
    2023-07-17 16:00:05,190 INFO: Parser eventParser: conn_handle: [06 00]
    2023-07-17 16:00:05,191 INFO: Parser eventParser: role: [01]
    2023-07-17 16:00:05,191 INFO: Parser eventParser: remote addr type: [01]
    2023-07-17 16:00:05,191 INFO: Parser eventParser: remote addr: [A0 DE 13 53 C0 F1]
    2023-07-17 16:00:05,192 INFO: Parser eventParser: connInterval: [64 00]
    2023-07-17 16:00:05,192 INFO: Parser eventParser: connLatency: [00 00]
    2023-07-17 16:00:05,193 INFO: Parser eventParser: supTimeout: [F4 01]
    2023-07-17 16:00:05,193 INFO: Packet sendPacket: <<<send packet: AA 11 05 00 00 00 43 80 00 27
    2023-07-17 16:00:05,203 INFO: AciHostCLI continuously_read: >>>receive packet: AA 12 03 00 0D 01 00 DD
    2023-07-17 16:00:05,204 INFO: Parser eventParser: syncWord: AA,seqn: 12,len: 3,opcode: 010D,params: [00], check_sum: DD
    2023-07-17 16:00:05,204 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_DISCOVERY_DONE
    2023-07-17 16:00:05,204 INFO: Parser eventParser: link_id: [00]
    2023-07-17 16:00:05,205 INFO: Packet sendPacket: <<<send packet: AA 12 05 00 00 00 0D 01 00 DB
    2023-07-17 16:00:05,331 INFO: AciHostCLI continuously_read: >>>receive packet: AA 13 05 00 41 80 01 F4 20 30
    2023-07-17 16:00:05,332 INFO: Parser eventParser: syncWord: AA,seqn: 13,len: 5,opcode: 8041,params: [01 F4 00], check_sum: 32
    2023-07-17 16:00:05,333 INFO: Parser eventParser: event name: EVENT_XM_LE_MTU
    2023-07-17 16:00:05,333 INFO: Parser eventParser: mtu_size: [01 F4]
    2023-07-17 16:00:05,334 INFO: Packet sendPacket: <<<send packet: AA 13 05 00 00 00 41 80 00 27
    2023-07-17 16:00:07,584 INFO: AciHostCLI continuously_read: >>>receive packet: AA 14 0B 00 02 01 01 00 00 00 00 00 00 00 00 DD
    2023-07-17 16:00:07,584 INFO: Parser eventParser: syncWord: AA,seqn: 14,len: 11,opcode: 0102,params: [01 00 00 00 00 00 00 00 00], check_sum: DD
    2023-07-17 16:00:07,585 INFO: Parser eventParser: event name: APP_EVENT_LE_PAIR_STATUS
    2023-07-17 16:00:07,586 INFO: Parser eventParser: link_id: [01]
    2023-07-17 16:00:07,586 INFO: Parser eventParser: cause: [00 00]
    2023-07-17 16:00:07,587 INFO: Parser eventParser: resolved_addr: [00 00 00 00 00 00]
    2023-07-17 16:00:07,587 INFO: Packet sendPacket: <<<send packet: AA 14 05 00 00 00 02 01 00 E4
    2023-07-17 16:00:22,950 INFO: AciHostCLI continuously_read: >>>receive packet: AA 15 03 00 0D 01 01 D9
    2023-07-17 16:00:22,951 INFO: Parser eventParser: syncWord: AA,seqn: 15,len: 3,opcode: 010D,params: [01], check_sum: D9
    2023-07-17 16:00:22,952 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_DISCOVERY_DONE
    2023-07-17 16:00:22,952 INFO: Parser eventParser: link_id: [01]
    2023-07-17 16:00:22,952 INFO: Packet sendPacket: <<<send packet: AA 15 05 00 00 00 0D 01 00 D8
    
BIS Initiator Introduction

BIS, which stands for Broadcast Isochronous Channel, is a communication channel utilized in the context of LE Audio. It is responsible for transmitting audio data wirelessly. BIS is designed to support high-quality audio streaming, allowing the transfer of synchronized audio content from a source device (as broadcast source role) to multiple recipient devices simultaneously.

BIS Initiator ACI Host CLI Test
ACI Host CLI CMD for BIS Initiator

Command

Parameters

ACI Host CLI CMD

CMD_LEA_BSRC_INIT(0x3020)

codec type = CODEC_CFG_ITEM_48_4(48k) BIS num = 1 encryption = false ull_mode = true pd = 0x2710

bsrcinit 48k_1bis

CMD_LEA_BSRC_INIT(0x3020)

codec type = CODEC_CFG_ITEM_16_2(16k) BIS num = 1 encryption = false ull_mode = true pd = 0x2710

bsrcinit 16k_1bis

CMD_LEA_BSRC_INIT(0x3020)

codec type = CODEC_CFG_ITEM_48_4(48k) BIS num = 2 encryption = false ull_mode = true pd = 0x2710

bsrcinit 48k_2bis

CMD_LEA_BSRC_INIT(0x3020)

codec type = CODEC_CFG_ITEM_16_2(16k) BIS num = 2 encryption = false ull_mode = true pd = 0x2710

bsrcinit 16k_2bis

CMD_LEA_BSRC_START(0x3221)

None

bsrcstart x

CMD_LEA_BSRC_STOP(0x3022)

release = true

bsrcstop release

CMD_LEA_BSRC_STOP(0x3022)

release = false

bsrcstop hold

The ACI Host CLI CMD for BIS are CMD_LEA_BSRC_INIT, CMD_LEA_BSRC_START, and CMD_LEA_BSRC_STOP. CMD_LEA_BSRC_INIT is used to initialize the parameters related to BIS, including codec type, BIS number, encryption mode, ULL mode (Ultra Low Latency mode), and PD (Presentation Delay). The PD parameter is only effective when ULL mode is enabled. When ULL mode is activated, the following parameters are specifically used when creating BIG: Packing = Interleaved, Max Transport Latency = 10 ms, RTN = 2. Additionally, the DSP would periodically fetch the anchor point to capture data at more precise time intervals, aiming for lower and more stable latency. CMD_LEA_BSRC_START is used to activate BIS, while CMD_LEA_BSRC_STOP is used to stop BIS.

  1. ACI Host CLI test: Initialize BIS.

    2023-05-31 10:25:21,803 INFO: input command: bsrcinit 48k_2bis
    2023-05-31 10:25:21,803 INFO: Parser cmdParser: cmd opcode: 3020 param: [0D 02 00 01 10 27] name: CMD_LEA_BSRC_INIT
    2023-05-31 10:25:21,803 INFO: Packet sendPacket: <<<send packet: AA 0C 07 00 20 30 0D 02 00 01 10 27 11
    2023-05-31 10:25:21,834 INFO: AciHostCLI continuously_read: >>>receive packet: AA 03 05 00 00 00 20 30 00 C6
    2023-05-31 10:25:21,834 INFO: Parser eventParser: syncWord: AA,seqn: 03,len: 5,opcode: 0000,params: [20 30 00], check_sum: C6
    2023-05-31 10:25:21,834 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-31 10:25:21,834 INFO: Parser eventParser: event_id: [20 30]
    2023-05-31 10:25:21,834 INFO: Parser eventParser: status: [00]
    
  2. ACI Host CLI test: Start BIS.

    2023-05-31 10:25:36,368 INFO: input command: bsrcstart x
    2023-05-31 10:25:36,368 INFO: Parser cmdParser: cmd opcode: 3021 param: [] name: CMD_LEA_BSRC_START
    2023-05-31 10:25:36,368 INFO: Packet sendPacket: <<<send packet: AA 0D 02 00 21 30 BE
    2023-05-31 10:25:36,388 INFO: AciHostCLI continuously_read: >>>receive packet: AA 04 05 00 00 00 21 30 00 C4
    2023-05-31 10:25:36,388 INFO: Parser eventParser: syncWord: AA,seqn: 04,len: 5,opcode: 0000,params: [21 30 00], check_sum: C4
    2023-05-31 10:25:36,388 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-31 10:25:36,388 INFO: Parser eventParser: event_id: [21 30]
    2023-05-31 10:25:36,388 INFO: Parser eventParser: status: [00]
    
  3. ACI Host CLI test: Stop BIS.

    2023-05-31 10:25:50,472 INFO: input command: bsrcstop release
    2023-05-31 10:25:50,472 INFO: Parser cmdParser: cmd opcode: 3022 param: [01] name: CMD_LEA_BSRC_STOP
    2023-05-31 10:25:50,472 INFO: Packet sendPacket: <<<send packet: AA 0E 03 00 22 30 01 BA
    2023-05-31 10:25:50,512 INFO: AciHostCLI continuously_read: >>>receive packet: AA 05 05 00 00 00 22 30 00 C2
    2023-05-31 10:25:50,512 INFO: Parser eventParser: syncWord: AA,seqn: 05,len: 5,opcode: 0000,params: [22 30 00], check_sum: C2
    2023-05-31 10:25:50,522 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-31 10:25:50,522 INFO: Parser eventParser: event_id: [22 30]
    2023-05-31 10:25:50,522 INFO: Parser eventParser: status: [00]
    
CIS Initiator Introduction

CIS, which stands for Connected Isochronous Stream, is an audio stream utilized in the context of LE Audio. Unlike BIS, an ACL link must always be present during the life of a CIS.

CIS Initiator ACI Host CLI Test
ACI Host CLI CMD for CIS Initiator

Command

Parameters

ACI Host CLI CMD

CMD_LEA_SCAN = 0x3023

type = APP_LEA_SCAN_START(0)

lea_scan start

CMD_LEA_SCAN(0x3023)

type = APP_LEA_SCAN_STOP(1)

lea_scan stop

CMD_LEA_CIS_START_MEDIA(0x3024)

group_idx = 0

cis_media start_group_idx_0

CMD_LEA_CIS_START_MEDIA(0x3024)

group_idx = 1

cis_media start_group_idx_1

CMD_LEA_CIS_START_CONVERSATION(0x3031)

group_idx = 0

cis_conversation start_group_idx_0

CMD_LEA_CIS_START_CONVERSATION(0x3031)

group_idx = 1

cis_conversation start_group_idx_1

CMD_LEA_CIS_STOP_STREAM(0x3025)

group_idx = 0, release = false

cis_stream stop_group_idx_0

CMD_LEA_CIS_STOP_STREAM(0x3025)

group_idx = 0, release = true

cis_stream release_group_idx_0

CMD_LEA_CIS_STOP_STREAM(0x3025)

group_idx = 1, release = false

cis_stream stop_group_idx_1

CMD_LEA_CIS_STOP_STREAM(0x3025)

group_idx = 1, release = true

cis_stream release_group_idx_1

For CIS, it is necessary to establish an LE link. Please refer to Initiator General ACI Host CLI Test for connection procedure.

  1. ACI Host CLI test: Start media stream.

    2023-12-08 16:23:42,137 INFO: input command: cis_media start_group_idx_0
    2023-12-08 16:23:42,137 INFO: Parser cmdParser: cmd opcode: 3024 param: [00] name: CMD_LEA_CIS_START_MEDIA
    2023-12-08 16:23:42,137 INFO: Packet sendPacket: <<<send packet: AA 13 03 00 24 30 00 96
    2023-12-08 16:23:42,213 WARNING: AciHostCLI retrans: retransmit command cis_media start_group_idx_0 due to ack timeout! retry: 1
    2023-12-08 16:23:42,213 INFO: Packet sendPacket: <<<send packet: AA 13 03 00 24 30 00 96
    2023-12-08 16:23:42,233 INFO: AciHostCLI continuously_read: >>>receive packet: AA 14 05 00 00 00 24 30 00 93
    2023-12-08 16:23:42,233 INFO: Parser eventParser: syncWord: AA,seqn: 14,len: 5,opcode: 0000,params: [24 30 00], check_sum: 93
    2023-12-08 16:23:42,233 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-12-08 16:23:42,233 INFO: Parser eventParser: event_id: [24 30]
    2023-12-08 16:23:42,233 INFO: Parser eventParser: status: [00]
    2023-12-08 16:23:42,233 INFO: AciHostCLI continuously_read: >>>receive packet: AA 15 07 00 41 01 D0 E7 2C 00 01 BE
    2023-12-08 16:23:42,233 INFO: Parser eventParser: syncWord: AA,seqn: 15,len: 7,opcode: 0141,params: [D0 E7 2C 00 01], check_sum: BE
    2023-12-08 16:23:42,237 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2023-12-08 16:23:42,237 INFO: Parser eventParser: group_handle: [D0 E7 2C 00]
    2023-12-08 16:23:42,237 INFO: Parser eventParser: state: [01]
    2023-12-08 16:23:42,237 INFO: Packet sendPacket: <<<send packet: AA 14 05 00 00 00 41 01 00 A5
    2023-12-08 16:23:42,249 INFO: AciHostCLI continuously_read: >>>receive packet: AA 16 07 00 41 01 D0 E7 2C 00 03 BB
    2023-12-08 16:23:42,249 INFO: Parser eventParser: syncWord: AA,seqn: 16,len: 7,opcode: 0141,params: [D0 E7 2C 00 03], check_sum: BB
    2023-12-08 16:23:42,249 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2023-12-08 16:23:42,249 INFO: Parser eventParser: group_handle: [D0 E7 2C 00]
    2023-12-08 16:23:42,249 INFO: Parser eventParser: state: [03]
    2023-12-08 16:23:42,249 INFO: Packet sendPacket: <<<send packet: AA 15 05 00 00 00 41 01 00 A4
    2023-12-08 16:23:42,616 INFO: AciHostCLI continuously_read: >>>receive packet: AA 17 0A 00 44 80 00 00 18 00 00 00 F4 01 0E
    2023-12-08 16:23:42,616 INFO: Parser eventParser: syncWord: AA,seqn: 17,len: 10,opcode: 8044,params: [00 00 18 00 00 00 F4 01], check_sum: 0E
    2023-12-08 16:23:42,616 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_PARAM
    2023-12-08 16:23:42,616 INFO: Parser eventParser: app_link_id: [00]
    2023-12-08 16:23:42,616 INFO: Parser eventParser: res: [00]
    2023-12-08 16:23:42,616 INFO: Parser eventParser: connInterval: [18 00]
    2023-12-08 16:23:42,620 INFO: Parser eventParser: connLatency: [00 00]
    2023-12-08 16:23:42,620 INFO: Parser eventParser: supTimeout: [F4 01]
    2023-12-08 16:23:42,620 INFO: Packet sendPacket: <<<send packet: AA 16 05 00 00 00 44 80 00 21
    2023-12-08 16:23:42,952 INFO: AciHostCLI continuously_read: >>>receive packet: AA 18 0A 00 44 80 00 00 20 00 00 00 F4 01 05
    2023-12-08 16:23:42,952 INFO: Parser eventParser: syncWord: AA,seqn: 18,len: 10,opcode: 8044,params: [00 00 20 00 00 00 F4 01], check_sum: 05
    2023-12-08 16:23:42,952 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_PARAM
    2023-12-08 16:23:42,952 INFO: Parser eventParser: app_link_id: [00]
    2023-12-08 16:23:42,952 INFO: Parser eventParser: res: [00]
    2023-12-08 16:23:42,952 INFO: Parser eventParser: connInterval: [20 00]
    2023-12-08 16:23:42,956 INFO: Parser eventParser: connLatency: [00 00]
    2023-12-08 16:23:42,956 INFO: Parser eventParser: supTimeout: [F4 01]
    2023-12-08 16:23:42,956 INFO: Packet sendPacket: <<<send packet: AA 17 05 00 00 00 44 80 00 20
    2023-12-08 16:23:43,685 INFO: AciHostCLI continuously_read: >>>receive packet: AA 19 07 00 41 01 D0 E7 2C 00 04 B7
    2023-12-08 16:23:43,685 INFO: Parser eventParser: syncWord: AA,seqn: 19,len: 7,opcode: 0141,params: [D0 E7 2C 00 04], check_sum: B7
    2023-12-08 16:23:43,685 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2023-12-08 16:23:43,685 INFO: Parser eventParser: group_handle: [D0 E7 2C 00]
    2023-12-08 16:23:43,685 INFO: Parser eventParser: state: [04]
    2023-12-08 16:23:43,689 INFO: Packet sendPacket: <<<send packet: AA 18 05 00 00 00 41 01 00 A1
    
  2. ACI Host CLI test: Stop media stream.

    2023-12-08 16:23:53,705 INFO: input command: cis_stream stop_group_idx_0
    2023-12-08 16:23:53,705 INFO: Parser cmdParser: cmd opcode: 3025 param: [00 00] name: CMD_LEA_CIS_STOP_STREAM
    2023-12-08 16:23:53,705 INFO: Packet sendPacket: <<<send packet: AA 19 04 00 25 30 00 00 8E
    2023-12-08 16:23:53,713 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1A 05 00 00 00 25 30 00 8C
    2023-12-08 16:23:53,713 INFO: Parser eventParser: syncWord: AA,seqn: 1A,len: 5,opcode: 0000,params: [25 30 00], check_sum: 8C
    2023-12-08 16:23:53,717 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-12-08 16:23:53,717 INFO: Parser eventParser: event_id: [25 30]
    2023-12-08 16:23:53,717 INFO: Parser eventParser: status: [00]
    2023-12-08 16:23:53,717 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1B 07 00 41 01 D0 E7 2C 00 06 B3
    2023-12-08 16:23:53,717 INFO: Parser eventParser: syncWord: AA,seqn: 1B,len: 7,opcode: 0141,params: [D0 E7 2C 00 06], check_sum: B3
    2023-12-08 16:23:53,717 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2023-12-08 16:23:53,717 INFO: Parser eventParser: group_handle: [D0 E7 2C 00]
    2023-12-08 16:23:53,721 INFO: Parser eventParser: state: [06]
    2023-12-08 16:23:53,721 INFO: Packet sendPacket: <<<send packet: AA 1A 05 00 00 00 41 01 00 9F
    2023-12-08 16:23:53,807 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1C 07 00 41 01 D0 E7 2C 00 02 B6
    2023-12-08 16:23:53,811 INFO: Parser eventParser: syncWord: AA,seqn: 1C,len: 7,opcode: 0141,params: [D0 E7 2C 00 02], check_sum: B6
    2023-12-08 16:23:53,811 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2023-12-08 16:23:53,811 INFO: Parser eventParser: group_handle: [D0 E7 2C 00]
    2023-12-08 16:23:53,811 INFO: Parser eventParser: state: [02]
    2023-12-08 16:23:53,811 INFO: Packet sendPacket: <<<send packet: AA 1B 05 00 00 00 41 01 00 9E
    
  3. ACI Host CLI test: Release media stream.

    2023-12-08 16:24:02,218 INFO: input command: cis_stream release_group_idx_0
    2023-12-08 16:24:02,218 INFO: Parser cmdParser: cmd opcode: 3025 param: [00 01] name: CMD_LEA_CIS_STOP_STREAM
    2023-12-08 16:24:02,218 INFO: Packet sendPacket: <<<send packet: AA 1C 04 00 25 30 00 01 8A
    2023-12-08 16:24:02,242 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1D 05 00 00 00 25 30 00 89
    2023-12-08 16:24:02,242 INFO: Parser eventParser: syncWord: AA,seqn: 1D,len: 5,opcode: 0000,params: [25 30 00], check_sum: 89
    2023-12-08 16:24:02,242 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-12-08 16:24:02,242 INFO: Parser eventParser: event_id: [25 30]
    2023-12-08 16:24:02,242 INFO: Parser eventParser: status: [00]
    2023-12-08 16:24:02,242 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1E 07 00 41 01 D0 E7 2C 00 07 AF
    2023-12-08 16:24:02,242 INFO: Parser eventParser: syncWord: AA,seqn: 1E,len: 7,opcode: 0141,params: [D0 E7 2C 00 07], check_sum: AF
    2023-12-08 16:24:02,242 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2023-12-08 16:24:02,246 INFO: Parser eventParser: group_handle: [D0 E7 2C 00]
    2023-12-08 16:24:02,246 INFO: Parser eventParser: state: [07]
    2023-12-08 16:24:02,246 INFO: Packet sendPacket: <<<send packet: AA 1D 05 00 00 00 41 01 00 9C
    2023-12-08 16:24:02,400 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1F 07 00 41 01 D0 E7 2C 00 01 B4
    2023-12-08 16:24:02,400 INFO: Parser eventParser: syncWord: AA,seqn: 1F,len: 7,opcode: 0141,params: [D0 E7 2C 00 01], check_sum: B4
    2023-12-08 16:24:02,400 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2023-12-08 16:24:02,400 INFO: Parser eventParser: group_handle: [D0 E7 2C 00]
    2023-12-08 16:24:02,400 INFO: Parser eventParser: state: [01]
    2023-12-08 16:24:02,404 INFO: Packet sendPacket: <<<send packet: AA 1E 05 00 00 00 41 01 00 9B
    2023-12-08 16:24:02,751 INFO: AciHostCLI continuously_read: >>>receive packet: AA 20 0A 00 44 80 00 00 18 00 00 00 F4 01 05
    2023-12-08 16:24:02,751 INFO: Parser eventParser: syncWord: AA,seqn: 20,len: 10,opcode: 8044,params: [00 00 18 00 00 00 F4 01], check_sum: 05
    2023-12-08 16:24:02,751 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_PARAM
    2023-12-08 16:24:02,751 INFO: Parser eventParser: app_link_id: [00]
    2023-12-08 16:24:02,751 INFO: Parser eventParser: res: [00]
    2023-12-08 16:24:02,755 INFO: Parser eventParser: connInterval: [18 00]
    2023-12-08 16:24:02,755 INFO: Parser eventParser: connLatency: [00 00]
    2023-12-08 16:24:02,755 INFO: Parser eventParser: supTimeout: [F4 01]
    2023-12-08 16:24:02,755 INFO: Packet sendPacket: <<<send packet: AA 1F 05 00 00 00 44 80 00 18
    
  4. ACI Host CLI test: Start stream conversation.

    2023-12-08 16:24:11,884 INFO: input command: cis_conversation start_group_idx_0
    2023-12-08 16:24:11,884 INFO: Parser cmdParser: cmd opcode: 3031 param: [00] name: CMD_LEA_CIS_START_CONVERSATION
    2023-12-08 16:24:11,884 INFO: Packet sendPacket: <<<send packet: AA 20 03 00 31 30 00 7C
    2023-12-08 16:24:11,900 INFO: AciHostCLI continuously_read: >>>receive packet: AA 21 05 00 00 00 31 30 00 79
    2023-12-08 16:24:11,900 INFO: Parser eventParser: syncWord: AA,seqn: 21,len: 5,opcode: 0000,params: [31 30 00], check_sum: 79
    2023-12-08 16:24:11,900 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-12-08 16:24:11,904 INFO: Parser eventParser: event_id: [31 30]
    2023-12-08 16:24:11,904 INFO: Parser eventParser: status: [00]
    2023-12-08 16:24:11,904 INFO: AciHostCLI continuously_read: >>>receive packet: AA 22 07 00 41 01 D0 E7 2C 00 01 B1
    2023-12-08 16:24:11,904 INFO: Parser eventParser: syncWord: AA,seqn: 22,len: 7,opcode: 0141,params: [D0 E7 2C 00 01], check_sum: B1
    2023-12-08 16:24:11,908 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2023-12-08 16:24:11,908 INFO: Parser eventParser: group_handle: [D0 E7 2C 00]
    2023-12-08 16:24:11,908 INFO: Parser eventParser: state: [01]
    2023-12-08 16:24:11,908 INFO: Packet sendPacket: <<<send packet: AA 21 05 00 00 00 41 01 00 98
    2023-12-08 16:24:11,916 INFO: AciHostCLI continuously_read: >>>receive packet: AA 23 07 00 41 01 D0 E7 2C 00 03 AE
    2023-12-08 16:24:11,916 INFO: Parser eventParser: syncWord: AA,seqn: 23,len: 7,opcode: 0141,params: [D0 E7 2C 00 03], check_sum: AE
    2023-12-08 16:24:11,916 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2023-12-08 16:24:11,920 INFO: Parser eventParser: group_handle: [D0 E7 2C 00]
    2023-12-08 16:24:11,920 INFO: Parser eventParser: state: [03]
    2023-12-08 16:24:11,920 INFO: Packet sendPacket: <<<send packet: AA 22 05 00 00 00 41 01 00 97
    2023-12-08 16:24:12,557 INFO: AciHostCLI continuously_read: >>>receive packet: AA 24 0A 00 44 80 00 00 18 00 00 00 F4 01 01
    2023-12-08 16:24:12,557 INFO: Parser eventParser: syncWord: AA,seqn: 24,len: 10,opcode: 8044,params: [00 00 18 00 00 00 F4 01], check_sum: 01
    2023-12-08 16:24:12,557 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_PARAM
    2023-12-08 16:24:12,557 INFO: Parser eventParser: app_link_id: [00]
    2023-12-08 16:24:12,561 INFO: Parser eventParser: res: [00]
    2023-12-08 16:24:12,561 INFO: Parser eventParser: connInterval: [18 00]
    2023-12-08 16:24:12,561 INFO: Parser eventParser: connLatency: [00 00]
    2023-12-08 16:24:12,561 INFO: Parser eventParser: supTimeout: [F4 01]
    2023-12-08 16:24:12,561 INFO: Packet sendPacket: <<<send packet: AA 23 05 00 00 00 44 80 00 14
    2023-12-08 16:24:12,921 INFO: AciHostCLI continuously_read: >>>receive packet: AA 25 07 00 41 01 D0 E7 2C 00 04 AB
    2023-12-08 16:24:12,925 INFO: Parser eventParser: syncWord: AA,seqn: 25,len: 7,opcode: 0141,params: [D0 E7 2C 00 04], check_sum: AB
    2023-12-08 16:24:12,925 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2023-12-08 16:24:12,925 INFO: Parser eventParser: group_handle: [D0 E7 2C 00]
    2023-12-08 16:24:12,925 INFO: Parser eventParser: state: [04]
    2023-12-08 16:24:12,925 INFO: Packet sendPacket: <<<send packet: AA 24 05 00 00 00 41 01 00 95
    
  5. ACI Host CLI test: Stop stream conversation.

    2023-12-08 16:24:18,072 INFO: input command: cis_stream stop_group_idx_0
    2023-12-08 16:24:18,072 INFO: Parser cmdParser: cmd opcode: 3025 param: [00 00] name: CMD_LEA_CIS_STOP_STREAM
    2023-12-08 16:24:18,072 INFO: Packet sendPacket: <<<send packet: AA 25 04 00 25 30 00 00 82
    2023-12-08 16:24:18,080 INFO: AciHostCLI continuously_read: >>>receive packet: AA 26 05 00 00 00 25 30 00 80
    2023-12-08 16:24:18,084 INFO: Parser eventParser: syncWord: AA,seqn: 26,len: 5,opcode: 0000,params: [25 30 00], check_sum: 80
    2023-12-08 16:24:18,084 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-12-08 16:24:18,084 INFO: Parser eventParser: event_id: [25 30]
    2023-12-08 16:24:18,084 INFO: Parser eventParser: status: [00]
    2023-12-08 16:24:18,084 INFO: AciHostCLI continuously_read: >>>receive packet: AA 27 07 00 41 01 D0 E7 2C 00 06 A7
    2023-12-08 16:24:18,084 INFO: Parser eventParser: syncWord: AA,seqn: 27,len: 7,opcode: 0141,params: [D0 E7 2C 00 06], check_sum: A7
    2023-12-08 16:24:18,084 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2023-12-08 16:24:18,084 INFO: Parser eventParser: group_handle: [D0 E7 2C 00]
    2023-12-08 16:24:18,088 INFO: Parser eventParser: state: [06]
    2023-12-08 16:24:18,088 INFO: Packet sendPacket: <<<send packet: AA 26 05 00 00 00 41 01 00 93
    2023-12-08 16:24:18,254 INFO: AciHostCLI continuously_read: >>>receive packet: AA 28 07 00 41 01 D0 E7 2C 00 02 AA
    2023-12-08 16:24:18,258 INFO: Parser eventParser: syncWord: AA,seqn: 28,len: 7,opcode: 0141,params: [D0 E7 2C 00 02], check_sum: AA
    2023-12-08 16:24:18,258 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2023-12-08 16:24:18,258 INFO: Parser eventParser: group_handle: [D0 E7 2C 00]
    2023-12-08 16:24:18,258 INFO: Parser eventParser: state: [02]
    2023-12-08 16:24:18,258 INFO: Packet sendPacket: <<<send packet: AA 27 05 00 00 00 41 01 00 92
    
  6. ACI Host CLI test: Release stream conversation.

    2023-12-08 16:24:23,562 INFO: input command: cis_stream release_group_idx_0
    2023-12-08 16:24:23,562 INFO: Parser cmdParser: cmd opcode: 3025 param: [00 01] name: CMD_LEA_CIS_STOP_STREAM
    2023-12-08 16:24:23,562 INFO: Packet sendPacket: <<<send packet: AA 28 04 00 25 30 00 01 7E
    2023-12-08 16:24:23,574 INFO: AciHostCLI continuously_read: >>>receive packet: AA 29 05 00 00 00 25 30 00 7D
    2023-12-08 16:24:23,574 INFO: Parser eventParser: syncWord: AA,seqn: 29,len: 5,opcode: 0000,params: [25 30 00], check_sum: 7D
    2023-12-08 16:24:23,574 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-12-08 16:24:23,574 INFO: Parser eventParser: event_id: [25 30]
    2023-12-08 16:24:23,574 INFO: Parser eventParser: status: [00]
    2023-12-08 16:24:23,574 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2A 07 00 41 01 D0 E7 2C 00 07 A3
    2023-12-08 16:24:23,578 INFO: Parser eventParser: syncWord: AA,seqn: 2A,len: 7,opcode: 0141,params: [D0 E7 2C 00 07], check_sum: A3
    2023-12-08 16:24:23,578 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2023-12-08 16:24:23,578 INFO: Parser eventParser: group_handle: [D0 E7 2C 00]
    2023-12-08 16:24:23,578 INFO: Parser eventParser: state: [07]
    2023-12-08 16:24:23,578 INFO: Packet sendPacket: <<<send packet: AA 29 05 00 00 00 41 01 00 90
    2023-12-08 16:24:23,718 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2B 07 00 41 01 D0 E7 2C 00 01 A8
    2023-12-08 16:24:23,718 INFO: Parser eventParser: syncWord: AA,seqn: 2B,len: 7,opcode: 0141,params: [D0 E7 2C 00 01], check_sum: A8
    2023-12-08 16:24:23,718 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2023-12-08 16:24:23,718 INFO: Parser eventParser: group_handle: [D0 E7 2C 00]
    2023-12-08 16:24:23,718 INFO: Parser eventParser: state: [01]
    2023-12-08 16:24:23,718 INFO: Packet sendPacket: <<<send packet: AA 2A 05 00 00 00 41 01 00 8F
    2023-12-08 16:24:23,956 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2C 0A 00 44 80 00 00 18 00 00 00 F4 01 F9
    2023-12-08 16:24:23,960 INFO: Parser eventParser: syncWord: AA,seqn: 2C,len: 10,opcode: 8044,params: [00 00 18 00 00 00 F4 01], check_sum: F9
    2023-12-08 16:24:23,960 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_PARAM
    2023-12-08 16:24:23,960 INFO: Parser eventParser: app_link_id: [00]
    2023-12-08 16:24:23,960 INFO: Parser eventParser: res: [00]
    2023-12-08 16:24:23,960 INFO: Parser eventParser: connInterval: [18 00]
    2023-12-08 16:24:23,960 INFO: Parser eventParser: connLatency: [00 00]
    2023-12-08 16:24:23,964 INFO: Parser eventParser: supTimeout: [F4 01]
    2023-12-08 16:24:23,964 INFO: Packet sendPacket: <<<send packet: AA 2B 05 00 00 00 44 80 00 0C
    
LE Audio Acceptor
Acceptor Introduction

Acceptor, which is described in the CAP specification, always operates in the BAP Unicast Server role, BAP Broadcast Sink role, BAP Scan Delegator role, VCP Volume Renderer Role, MICP MIC Device role, or CCP Call Control Client role.

Acceptor General ACI Host CLI Test
ACI Host CLI CMD for Acceptor

Command

Parameters

ACI Host CLI CMD

CMD_LEA_ADV_START(0x3250)

None

lea_adv_start

CMD_LEA_ADV_STOP(0x3251)

None

lea_adv_stop

The ACI Host CLI commands for Acceptor are CMD_LEA_ADV_START and CMD_LEA_ADV_STOP:

  • CMD_LEA_ADV_START is used to start LE Audio advertising and be able to be connected by the Initiator which supports CIS.

  • CMD_LEA_ADV_STOP is used to stop LE Audio advertising and the Initiator cannot scan the Acceptor.

  1. ACI Host CLI test: Start LE Audio Advertising.

    2023-07-27 11:07:56,017 INFO: input command: lea_adv_start x
    2023-07-27 11:07:56,018 INFO: Parser cmdParser: cmd opcode: 3250 param: [] name: CMD_LEA_ADV_START
    2023-07-27 11:07:56,019 INFO: Packet sendPacket: <<<send packet: AA 01 02 00 50 32 7B
    2023-07-27 11:07:56,029 INFO: AciHostCLI continuously_read: >>>receive packet: AA 02 05 00 00 00 50 32 00 77
    2023-07-27 11:07:56,036 INFO: Parser eventParser: syncWord: AA,seqn: 02,len: 5,opcode: 0000,params: [50 32 00], check_sum: 77
    2023-07-27 11:07:56,044 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-27 11:07:56,046 INFO: Parser eventParser: event_id: [50 32]
    2023-07-27 11:07:56,047 INFO: Parser eventParser: status: [00]
    
  2. ACI Host CLI test: Stop LE Audio Advertising.

    2023-07-27 11:08:38,865 INFO: input command: lea_adv_stop x
    2023-07-27 11:08:38,865 INFO: Parser cmdParser: cmd opcode: 3251 param: [] name: CMD_LEA_ADV_STOP
    2023-07-27 11:08:38,868 INFO: Packet sendPacket: <<<send packet: AA 09 02 00 51 32 72
    2023-07-27 11:08:38,883 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0A 05 00 00 00 51 32 00 6E
    2023-07-27 11:08:38,889 INFO: Parser eventParser: syncWord: AA,seqn: 0A,len: 5,opcode: 0000,params: [51 32 00], check_sum: 6E
    2023-07-27 11:08:38,892 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-27 11:08:38,895 INFO: Parser eventParser: event_id: [51 32]
    2023-07-27 11:08:38,897 INFO: Parser eventParser: status: [00]
    
BIS Acceptor Introduction

BIS Acceptor, subdivision according to CAP role of the Acceptor, availability in variety broadcast scenarios. Besides being used for receiving Broadcast Isochronous Streams, it can also support scanning for Broadcast Audio Streams autonomously or delegate the scanning to a Commander.

BIS Acceptor ACI Host CLI Test
ACI Host CLI CMD for BIS Acceptor

Command

Parameters

ACI Host CLI CMD

CMD_LEA_SYNC_INIT(0x3254)

bis_mode = random bis_policy = sink addr = NULL

bis_sync_init random

CMD_LEA_SYNC_INIT(0x3254)

bis_mode = spec bis_policy = sink addr = {0x03:0x22:0x56:0x77:0x03:0x15}

bis_sync_init spec

CMD_LEA_SYNC_INIT(0x3254)

bis_mode = random bis_policy = delegator addr = NULL

bis_sync_init delegator

CMD_LEA_SYNC(0x3255)

sync = true

bis_sync start

CMD_LEA_SYNC(0x3255)

sync = false

bis_sync stop

The ACI Host CLI CMD for BIS are CMD_LEA_SYNC_INIT, CMD_LEA_SYNC:

  • CMD_LEA_SYNC_INIT is used to initialize the BIS parameters, including BIS role, BIS mode, the addr need to sync and only used in specification mode.

  • CMD_LEA_SYNC is used to sync the broadcast audio stream.

  1. ACI Host CLI test: BIS sync initialization.

    2023-08-04 19:00:22,584 INFO: input command: bis_sync_init random
    2023-08-04 19:00:22,584 INFO: Parser cmdParser: cmd opcode: 3254 param: [02 00 00 00 00 00 00 00] name: CMD_LEA_SYNC_INIT
    2023-08-04 19:00:22,584 INFO: Packet sendPacket: <<<send packet: AA 04 0A 00 54 32 02 00 00 00 00 00 00 00 6A
    2023-08-04 19:00:22,604 INFO: AciHostCLI continuously_read: >>>receive packet: AA 04 05 00 00 00 54 32 00 71
    2023-08-04 19:00:22,609 INFO: Parser eventParser: syncWord: AA,seqn: 04,len: 5,opcode: 0000,params: [54 32 00], check_sum: 71
    2023-08-04 19:00:22,614 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-08-04 19:00:22,614 INFO: Parser eventParser: event_id: [54 32]
    2023-08-04 19:00:22,628 INFO: Parser eventParser: status: [00]
    
  2. ACI Host CLI test: BIS sync start.

    2023-08-04 19:00:29,694 INFO: input command: bis_sync start
    2023-08-04 19:00:29,694 INFO: Parser cmdParser: cmd opcode: 3255 param: [00] name: CMD_LEA_SYNC
    2023-08-04 19:00:29,694 INFO: Packet sendPacket: <<<send packet: AA 05 03 00 55 32 00 71
    2023-08-04 19:00:29,714 INFO: AciHostCLI continuously_read: >>>receive packet: AA 05 05 00 00 00 55 32 00 6F
    2023-08-04 19:00:29,724 INFO: Parser eventParser: syncWord: AA,seqn: 05,len: 5,opcode: 0000,params: [55 32 00], check_sum: 6F
    2023-08-04 19:00:29,724 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-08-04 19:00:29,724 INFO: Parser eventParser: event_id: [55 32]
    2023-08-04 19:00:29,724 INFO: Parser eventParser: status: [00]
    
  3. ACI Host CLI test: BIS sync stop.

    2023-08-04 19:01:02,725 INFO: input command: bis_sync stop
    2023-08-04 19:01:02,725 INFO: Parser cmdParser: cmd opcode: 3255 param: [01] name: CMD_LEA_SYNC
    2023-08-04 19:01:02,725 INFO: Packet sendPacket: <<<send packet: AA 06 03 00 55 32 01 6F
    2023-08-04 19:01:02,745 INFO: AciHostCLI continuously_read: >>>receive packet: AA 06 05 00 00 00 55 32 00 6E
    2023-08-04 19:01:02,745 INFO: Parser eventParser: syncWord: AA,seqn: 06,len: 5,opcode: 0000,params: [55 32 00], check_sum: 6E
    2023-08-04 19:01:02,745 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-08-04 19:01:02,745 INFO: Parser eventParser: event_id: [55 32]
    2023-08-04 19:01:02,755 INFO: Parser eventParser: status: [00]
    
CIS Acceptor Introduction

CIS, which stands for Unicast Isochronous Channel, is a logical transport for connected devices that allows sending and receiving isochronous data. For a CIS, an acknowledgment protocol is available to increase packet delivery dependability. This chapter describes how to use the CIS Acceptor and can be connected to remote devices. Actually, the CIS Acceptor can control the remote device’s music player and telephone call by MCP and CCP profiles. It will notify VCS audio volume to Initiator when local volume or SPK mute/unmute changes.

CIS Acceptor ACI Host CLI Test
ACI Host CLI CMD for CIS Acceptor

Command

Parameters

ACI Host CLI CMD

CMD_LEA_CCP_CALL_CP

conn_id=0 call_cp=0x00

lea_call_cp accept

CMD_LEA_CCP_CALL_CP

conn_id=0 call_cp=0x01

lea_call_cp terminate

CMD_LEA_CCP_CALL_CP

conn_id=0 call_cp=0x02

lea_call_cp local_hold

CMD_LEA_CCP_CALL_CP

conn_id=0 call_cp=0x03

lea_call_cp local_retrieve

CMD_LEA_CCP_CALL_CP

conn_id=0 call_cp=0x04

lea_call_cp originate

CMD_LEA_CCP_CALL_CP

conn_id=0 call_cp=0x05

lea_call_cp join

CMD_LEA_MCP_MEDIA_CP

conn_id=0 media_cp=0x01

lea_media_cp play

CMD_LEA_MCP_MEDIA_CP

conn_id=0 media_cp=0x02

lea_media_cp pause

CMD_LEA_MCP_MEDIA_CP

conn_id=0 media_cp=0x03

lea_media_cp fast_rewind

CMD_LEA_MCP_MEDIA_CP

conn_id=0 media_cp=0x04

lea_media_cp fast_forward

CMD_LEA_MCP_MEDIA_CP

conn_id=0 media_cp=0x05

lea_media_cp stop

CMD_LEA_MCP_MEDIA_CP

conn_id=0 media_cp=0x30

lea_media_cp previous_track

CMD_LEA_MCP_MEDIA_CP

conn_id=0 media_cp=0x31

lea_media_cp next_track

CMD_LEA_VCS_SET

conn_id=0 vol_type=0x00

lea_vcs vol_up

CMD_LEA_VCS_SET

conn_id=0 vol_type=0x01

lea_vcs vol_down

CMD_LEA_VCS_SET

conn_id=0 vol_type=0x02

lea_vcs spk_mute

CMD_LEA_VCS_SET

conn_id=0 vol_type=0x03

lea_vcs spk_unmute

The ACI Host CLI CMD for CIS Acceptor is CMD_LEA_CCP_CALL_CP, CMD_LEA_MCP_MEDIA_CP and CMD_LEA_VCS_SET:

  • CMD_LEA_CCP_CALL_CP is used to control the remote device’s telephone call when they are connected to LE Audio. And it can send accept, terminate, local hold, local retrieve, originate and join commands by CCP profile.

  • CMD_LEA_MCP_MEDIA_CP is used to control the remote device’s active music player when they are connected to LE Audio. And it can send play, pause, stop, fast rewind, fast forward, previous track, and next track commands by the MCP profile.

  • CMD_LEA_VCS_SET is used to change the volume of the local device’s audio and the CIS Acceptor will notify the VCS audio volume state to the remote device.

  1. ACI Host CLI test: CCP accept.

    2023-07-27 14:16:42,829 INFO: input command: lea_call_cp accept
    2023-07-27 14:16:42,830 INFO: Parser cmdParser: cmd opcode: 3252 param: [00 00] name: CMD_LEA_CCP_CALL_CP
    2023-07-27 14:16:42,831 INFO: Packet sendPacket: <<<send packet: AA 17 04 00 52 32 00 00 60
    2023-07-27 14:16:42,849 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0B 05 00 00 00 52 32 00 6B
    2023-07-27 14:16:42,858 INFO: Parser eventParser: syncWord: AA,seqn: 0B,len: 5,opcode: 0000,params: [52 32 00], check_sum: 6B
    2023-07-27 14:16:42,862 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-27 14:16:42,865 INFO: Parser eventParser: event_id: [52 32]
    2023-07-27 14:16:42,867 INFO: Parser eventParser: status: [00]
    2023-07-27 14:16:44,691 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1E 04 00 52 32 00 04 56
    2023-07-27 14:16:44,692 INFO: Parser eventParser: syncWord: AA,seqn: 1E,len: 4,opcode: 3252,params: [00 04], check_sum: 56
    2023-07-27 14:16:44,694 INFO: Packet sendPacket: <<<send packet: AA 0B 05 00 00 00 52 32 00 6C
    
  2. ACI Host CLI test: CCP terminate.

    2023-07-27 14:17:24,536 INFO: input command: lea_call_cp terminate
    2023-07-27 14:17:24,536 INFO: Parser cmdParser: cmd opcode: 3252 param: [00 01] name: CMD_LEA_CCP_CALL_CP
    2023-07-27 14:17:24,537 INFO: Packet sendPacket: <<<send packet: AA 1A 04 00 52 32 00 01 5D
    2023-07-27 14:17:24,556 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0E 05 00 00 00 52 32 00 69
    2023-07-27 14:17:24,559 INFO: Parser eventParser: syncWord: AA,seqn: 0E,len: 5,opcode: 0000,params: [52 32 00], check_sum: 69
    2023-07-27 14:17:24,560 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-27 14:17:24,561 INFO: Parser eventParser: event_id: [52 32]
    2023-07-27 14:17:24,562 INFO: Parser eventParser: status: [00]
    2023-07-27 14:17:26,922 INFO: AciHostCLI continuously_read: >>>receive packet: AA 20 04 00 52 32 00 00 58
    2023-07-27 14:17:26,923 INFO: Parser eventParser: syncWord: AA,seqn: 20,len: 4,opcode: 3252,params: [00 00], check_sum: 58
    2023-07-27 14:17:26,924 INFO: Packet sendPacket: <<<send packet: AA 0D 05 00 00 00 52 32 00 6A
    
  3. ACI Host CLI test: CCP local hold.

    2023-07-27 14:17:00,880 INFO: input command: lea_call_cp local_hold
    2023-07-27 14:17:00,880 INFO: Parser cmdParser: cmd opcode: 3252 param: [00 02] name: CMD_LEA_CCP_CALL_CP
    2023-07-27 14:17:00,882 INFO: Packet sendPacket: <<<send packet: AA 18 04 00 52 32 00 02 5E
    2023-07-27 14:17:00,903 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0C 05 00 00 00 52 32 00 6B
    2023-07-27 14:17:00,909 INFO: Parser eventParser: syncWord: AA,seqn: 0C,len: 5,opcode: 0000,params: [52 32 00], check_sum: 6B
    2023-07-27 14:17:00,918 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-27 14:17:00,920 INFO: Parser eventParser: event_id: [52 32]
    2023-07-27 14:17:00,921 INFO: Parser eventParser: status: [00]
    
  4. ACI Host CLI test: CCP local retrieve.

    2023-07-27 14:17:08,153 INFO: input command: lea_call_cp local_retrieve
    2023-07-27 14:17:08,154 INFO: Parser cmdParser: cmd opcode: 3252 param: [00 03] name: CMD_LEA_CCP_CALL_CP
    2023-07-27 14:17:08,155 INFO: Packet sendPacket: <<<send packet: AA 19 04 00 52 32 00 03 5C
    2023-07-27 14:17:08,172 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0D 05 00 00 00 52 32 00 6A
    2023-07-27 14:17:08,176 INFO: Parser eventParser: syncWord: AA,seqn: 0D,len: 5,opcode: 0000,params: [52 32 00], check_sum: 6A
    2023-07-27 14:17:08,178 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-27 14:17:08,184 INFO: Parser eventParser: event_id: [52 32]
    2023-07-27 14:17:08,186 INFO: Parser eventParser: status: [00]
    
  5. ACI Host CLI test: CCP originate.

  6. ACI Host CLI test: CCP join.

  7. ACI Host CLI test: MCP play.

    2023-07-27 12:00:52,509 INFO: input command: lea_media_cp play
    2023-07-27 12:00:52,510 INFO: Parser cmdParser: cmd opcode: 3253 param: [00 01] name: CMD_LEA_MCP_MEDIA_CP
    2023-07-27 12:00:52,511 INFO: Packet sendPacket: <<<send packet: AA 01 04 00 53 32 00 01 75
    2023-07-27 12:00:52,531 INFO: AciHostCLI continuously_read: >>>receive packet: AA 25 05 00 00 00 53 32 00 51
    2023-07-27 12:00:52,535 INFO: Parser eventParser: syncWord: AA,seqn: 25,len: 5,opcode: 0000,params: [53 32 00], check_sum: 51
    2023-07-27 12:00:52,542 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-27 12:00:52,544 INFO: Parser eventParser: event_id: [53 32]
    2023-07-27 12:00:52,546 INFO: Parser eventParser: status: [00]
    2023-07-27 12:00:52,570 INFO: AciHostCLI continuously_read: >>>receive packet: AA 26 04 00 53 32 00 01 50
    2023-07-27 12:00:52,572 INFO: Parser eventParser: syncWord: AA,seqn: 26,len: 4,opcode: 3253,params: [00 01], check_sum: 50
    2023-07-27 12:00:52,573 INFO: Packet sendPacket: <<<send packet: AA 02 05 00 00 00 53 32 00 74
    
  8. ACI Host CLI test: MCP pause.

    2023-07-27 12:04:41,402 INFO: input command: lea_media_cp pause
    2023-07-27 12:04:41,403 INFO: Parser cmdParser: cmd opcode: 3253 param: [00 02] name: CMD_LEA_MCP_MEDIA_CP
    2023-07-27 12:04:41,404 INFO: Packet sendPacket: <<<send packet: AA 03 04 00 53 32 00 02 72
    2023-07-27 12:04:41,417 INFO: AciHostCLI continuously_read: >>>receive packet: AA 27 05 00 00 00 53 32 00 4F
    2023-07-27 12:04:41,419 INFO: Parser eventParser: syncWord: AA,seqn: 27,len: 5,opcode: 0000,params: [53 32 00], check_sum: 4F
    2023-07-27 12:04:41,426 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-27 12:04:41,428 INFO: Parser eventParser: event_id: [53 32]
    2023-07-27 12:04:41,429 INFO: Parser eventParser: status: [00]
    2023-07-27 12:04:41,497 INFO: AciHostCLI continuously_read: >>>receive packet: AA 28 04 00 53 32 00 02 4D
    2023-07-27 12:04:41,498 INFO: Parser eventParser: syncWord: AA,seqn: 28,len: 4,opcode: 3253,params: [00 02], check_sum: 4D
    2023-07-27 12:04:41,499 INFO: Packet sendPacket: <<<send packet: AA 04 05 00 00 00 53 32 00 72
    
  9. ACI Host CLI test: MCP fast rewind.

    2023-07-27 12:05:01,473 INFO: input command: lea_media_cp fast_rewind
    2023-07-27 12:05:01,474 INFO: Parser cmdParser: cmd opcode: 3253 param: [00 03] name: CMD_LEA_MCP_MEDIA_CP
    2023-07-27 12:05:01,476 INFO: Packet sendPacket: <<<send packet: AA 05 04 00 53 32 00 03 6F
    2023-07-27 12:05:01,497 INFO: AciHostCLI continuously_read: >>>receive packet: AA 29 05 00 00 00 53 32 00 4D
    2023-07-27 12:05:01,500 INFO: Parser eventParser: syncWord: AA,seqn: 29,len: 5,opcode: 0000,params: [53 32 00], check_sum: 4D
    2023-07-27 12:05:01,501 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-27 12:05:01,504 INFO: Parser eventParser: event_id: [53 32]
    2023-07-27 12:05:01,505 INFO: Parser eventParser: status: [00]
    2023-07-27 12:05:01,573 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2A 04 00 53 32 00 03 4A
    2023-07-27 12:05:01,574 INFO: Parser eventParser: syncWord: AA,seqn: 2A,len: 4,opcode: 3253,params: [00 03], check_sum: 4A
    2023-07-27 12:05:01,575 INFO: Packet sendPacket: <<<send packet: AA 06 05 00 00 00 53 32 00 70
    
  10. ACI Host CLI test: MCP fast forward.

    2023-07-27 12:05:17,450 INFO: input command: lea_media_cp fast_forward
    2023-07-27 12:05:17,450 INFO: Parser cmdParser: cmd opcode: 3253 param: [00 04] name: CMD_LEA_MCP_MEDIA_CP
    2023-07-27 12:05:17,452 INFO: Packet sendPacket: <<<send packet: AA 07 04 00 53 32 00 04 6C
    2023-07-27 12:05:17,463 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2B 05 00 00 00 53 32 00 4B
    2023-07-27 12:05:17,470 INFO: Parser eventParser: syncWord: AA,seqn: 2B,len: 5,opcode: 0000,params: [53 32 00], check_sum: 4B
    2023-07-27 12:05:17,471 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-27 12:05:17,473 INFO: Parser eventParser: event_id: [53 32]
    2023-07-27 12:05:17,473 INFO: Parser eventParser: status: [00]
    2023-07-27 12:05:17,620 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2C 04 00 53 32 00 03 48
    2023-07-27 12:05:17,621 INFO: Parser eventParser: syncWord: AA,seqn: 2C,len: 4,opcode: 3253,params: [00 01], check_sum: 48
    2023-07-27 12:05:17,622 INFO: Packet sendPacket: <<<send packet: AA 08 05 00 00 00 53 32 00 6E
    
  11. ACI Host CLI test: MCP stop.

    2023-07-27 12:07:08,855 INFO: input command: lea_media_cp stop
    2023-07-27 12:07:08,856 INFO: Parser cmdParser: cmd opcode: 3253 param: [00 05] name: CMD_LEA_MCP_MEDIA_CP
    2023-07-27 12:07:08,857 INFO: Packet sendPacket: <<<send packet: AA 1A 04 00 53 32 00 05 58
    2023-07-27 12:07:08,874 INFO: AciHostCLI continuously_read: >>>receive packet: AA 3E 05 00 00 00 53 32 00 38
    2023-07-27 12:07:08,876 INFO: Parser eventParser: syncWord: AA,seqn: 3E,len: 5,opcode: 0000,params: [53 32 00], check_sum: 38
    2023-07-27 12:07:08,878 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-27 12:07:08,880 INFO: Parser eventParser: event_id: [53 32]
    2023-07-27 12:07:08,881 INFO: Parser eventParser: status: [00]
    2023-07-27 12:07:11,332 INFO: AciHostCLI continuously_read: >>>receive packet: AA 3F 04 00 53 32 00 02 36
    2023-07-27 12:07:11,334 INFO: Parser eventParser: syncWord: AA,seqn: 3F,len: 4,opcode: 3253,params: [00 02], check_sum: 36
    2023-07-27 12:07:11,336 INFO: Packet sendPacket: <<<send packet: AA 1B 05 00 00 00 53 32 00 5B
    
  12. ACI Host CLI test: MCP previous track.

    2023-07-27 12:07:54,069 INFO: input command: lea_media_cp previous_track
    2023-07-27 12:07:54,070 INFO: Parser cmdParser: cmd opcode: 3253 param: [00 30] name: CMD_LEA_MCP_MEDIA_CP
    2023-07-27 12:07:54,072 INFO: Packet sendPacket: <<<send packet: AA 1F 04 00 53 32 00 30 28
    2023-07-27 12:07:54,094 INFO: AciHostCLI continuously_read: >>>receive packet: AA 43 05 00 00 00 53 32 00 33
    2023-07-27 12:07:54,097 INFO: Parser eventParser: syncWord: AA,seqn: 43,len: 5,opcode: 0000,params: [53 32 00], check_sum: 33
    2023-07-27 12:07:54,099 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-27 12:07:54,100 INFO: Parser eventParser: event_id: [53 32]
    2023-07-27 12:07:54,101 INFO: Parser eventParser: status: [00]
    
  13. ACI Host CLI test: MCP next track.

    2023-07-27 12:08:05,519 INFO: input command: lea_media_cp next_track
    2023-07-27 12:08:05,519 INFO: Parser cmdParser: cmd opcode: 3253 param: [00 31] name: CMD_LEA_MCP_MEDIA_CP
    2023-07-27 12:08:05,520 INFO: Packet sendPacket: <<<send packet: AA 20 04 00 53 32 00 31 26
    2023-07-27 12:08:05,540 INFO: AciHostCLI continuously_read: >>>receive packet: AA 44 05 00 00 00 53 32 00 32
    2023-07-27 12:08:05,543 INFO: Parser eventParser: syncWord: AA,seqn: 44,len: 5,opcode: 0000,params: [53 32 00], check_sum: 32
    2023-07-27 12:08:05,543 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-27 12:08:05,544 INFO: Parser eventParser: event_id: [53 32]
    2023-07-27 12:08:05,545 INFO: Parser eventParser: status: [00]
    
  14. ACI Host CLI test: VCS volume up.

    2024-02-28 15:31:52,825 INFO: input command: lea_vcs vol_up
    2024-02-28 15:31:52,827 INFO: Parser cmdParser: cmd opcode: 3256 param: [00 00] name: CMD_LEA_VCS_SET_CP
    2024-02-28 15:31:52,829 INFO: Packet sendPacket: <<<send packet: AA 26 04 00 56 32 00 00 4E
    2024-02-28 15:31:52,852 INFO: AciHostCLI continuously_read: >>>receive packet: AA 25 03 00 20 00 01 B7
    2024-02-28 15:31:52,856 INFO: Parser eventParser: syncWord: AA,seqn: 25,len: 3,opcode: 0020,params: [01], check_sum: B7
    2024-02-28 15:31:52,859 INFO: Parser eventParser: event name: EVENT_AUDIO_VOL_CHANGE
    2024-02-28 15:31:52,872 INFO: Packet sendPacket: <<<send packet: AA 27 05 00 00 00 20 00 00 B4
    2024-02-28 15:31:52,882 INFO: AciHostCLI continuously_read: >>>receive packet: AA 26 05 00 00 00 56 32 00 4D
    2024-02-28 15:31:52,885 INFO: Parser eventParser: syncWord: AA,seqn: 26,len: 5,opcode: 0000,params: [56 32 00], check_sum: 4D
    2024-02-28 15:31:52,887 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-02-28 15:31:52,889 INFO: Parser eventParser: event_id: [56 32]
    2024-02-28 15:31:52,891 INFO: Parser eventParser: status: [00]
    
  15. ACI Host CLI test: VCS volume down.

    2024-02-28 15:31:46,154 INFO: input command: lea_vcs vol_down
    2024-02-28 15:31:46,156 INFO: Parser cmdParser: cmd opcode: 3256 param: [00 01] name: CMD_LEA_VCS_SET_CP
    2024-02-28 15:31:46,158 INFO: Packet sendPacket: <<<send packet: AA 23 04 00 56 32 00 01 50
    2024-02-28 15:31:46,173 INFO: AciHostCLI continuously_read: >>>receive packet: AA 22 03 00 20 00 04 B7
    2024-02-28 15:31:46,176 INFO: Parser eventParser: syncWord: AA,seqn: 22,len: 3,opcode: 0020,params: [04], check_sum: B7
    2024-02-28 15:31:46,180 INFO: Parser eventParser: event name: EVENT_AUDIO_VOL_CHANGE
    2024-02-28 15:31:46,182 INFO: Packet sendPacket: <<<send packet: AA 24 05 00 00 00 20 00 00 B7
    2024-02-28 15:31:46,188 INFO: AciHostCLI continuously_read: >>>receive packet: AA 23 05 00 00 00 56 32 00 50
    2024-02-28 15:31:46,190 INFO: Parser eventParser: syncWord: AA,seqn: 23,len: 5,opcode: 0000,params: [56 32 00], check_sum: 50
    2024-02-28 15:31:46,191 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-02-28 15:31:46,193 INFO: Parser eventParser: event_id: [56 32]
    2024-02-28 15:31:46,194 INFO: Parser eventParser: status: [00]
    
  16. ACI Host CLI test: VCS SPK mute.

    2024-02-28 15:32:02,346 INFO: input command: lea_vcs spk_mute
    2024-02-28 15:32:02,346 INFO: Parser cmdParser: cmd opcode: 3256 param: [00 02] name: CMD_LEA_VCS_SET_CP
    2024-02-28 15:32:02,348 INFO: Packet sendPacket: <<<send packet: AA 2F 04 00 56 32 00 02 43
    2024-02-28 15:32:02,371 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2F 05 00 00 00 56 32 00 44
    2024-02-28 15:32:02,373 INFO: Parser eventParser: syncWord: AA,seqn: 2F,len: 5,opcode: 0000,params: [56 32 00], check_sum: 44
    2024-02-28 15:32:02,375 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-02-28 15:32:02,377 INFO: Parser eventParser: event_id: [56 32]
    2024-02-28 15:32:02,378 INFO: Parser eventParser: status: [00]
    
  17. ACI Host CLI test: VCS SPK unmute.

    2024-02-28 15:32:06,691 INFO: input command: lea_vcs spk_unmute
    2024-02-28 15:32:06,692 INFO: Parser cmdParser: cmd opcode: 3256 param: [00 03] name: CMD_LEA_VCS_SET_CP
    2024-02-28 15:32:06,695 INFO: Packet sendPacket: <<<send packet: AA 30 04 00 56 32 00 03 41
    2024-02-28 15:32:06,720 INFO: AciHostCLI continuously_read: >>>receive packet: AA 30 05 00 00 00 56 32 00 43
    2024-02-28 15:32:06,726 INFO: Parser eventParser: syncWord: AA,seqn: 30,len: 5,opcode: 0000,params: [56 32 00], check_sum: 43
    2024-02-28 15:32:06,729 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-02-28 15:32:06,732 INFO: Parser eventParser: event_id: [56 32]
    2024-02-28 15:32:06,738 INFO: Parser eventParser: status: [00]
    

Bluetooth Audio Transmitter

This chapter introduces the functionality of the bt_audio_transmitter application scenario. This functionality is enabled by opening the macro definition F_APP_BT_AUDIO_TRANSMITTER_DEMO_SUPPORT in app_flags.h. This chapter describes how to use these functions and the flow of how to test them, including the MSCs of the ACI Device and ACI Host interaction, and the commands used by ACI Host CLI Tool.

Source Play Function

Based on the scenario introduced at the beginning of the article, the Bluetooth Audio Transceiver application supports source play function, which can transmit MIC, Line-in, USB, SD card signal to BUDs through HFP, A2DP or BIS/CIS. These input and output methods can be combined in various ways by set_route_in CMD and set_route_out CMD. This chapter presents three combinations as examples:

MIC Source Play

Before using, configure MIC 1 on the EVB and connect an external MIC. After connecting the MIC and starting the recording, the recorded data will be sent to the connected BUD via HFP. The MIC source playback process is:

../../../_images/bt_audio_trx_mic_src_play.png

MIC Source Play

ACI Host CLI Test: MIC Source Play
ACI Host CLI CMD for MIC Source Play

Command

Parameters

ACI Host CLI CMD

CMD_SRC_PLAY_SET_SRC_ROUTE(0x3300)

action = mic(0x01, 0x00)

set_route_in mic

CMD_SRC_PLAY_SET_PLAY_ROUTE(0x3302)

action = hfp_ag(0x02)

set_route_out hfp_ag

CMD_SRC_PLAY_ROUTE_IN_START(0x3304)

None

route_in start

CMD_SRC_PLAY_ROUTE_IN_STOP(0x3305)

None

route_in stop

CMD_SRC_PLAY_ROUTE_OUT_START(0x3306)

None

route_out start

CMD_SRC_PLAY_ROUTE_OUT_STOP(0x3307)

None

route_out stop

The ACI Host sends CMD_SRC_PLAY_SET_SRC_ROUTE to ACI Device to set the MIC input route, sends CMD_SRC_PLAY_SET_PLAY_ROUTE to set HFP output route, sends CMD_SRC_PLAY_ROUTE_IN_START or CMD_SRC_PLAY_ROUTE_IN_STOP to start or stop the MIC input route, and sends CMD_SRC_PLAY_ROUTE_OUT_START or CMD_SRC_PLAY_ROUTE_OUT_STOP to start or stop the HFP output route.

  1. ACI Host CLI test: Connect ACI Device to BUD.

    Please refer to Connect to BUD.

  2. ACI Host CLI test: Input set_route_in mic.

    2023-04-18 18:35:04,933 INFO: input command: set_route_in mic
    2023-04-18 18:35:04,933 INFO: Parser cmdParser: cmd opcode: 3300 param: [01 00] name: CMD_SRC_PLAY_SET_SRC_ROUTE
    2023-04-18 18:35:04,934 INFO: Packet sendPacket: <<<send packet: AA 10 03 00 00 33 01 00 B9
    2023-04-18 18:35:04,956 INFO: AciHostCLI continuously_read: >>>receive packet: AA 10 05 00 00 00 00 33 00 B8
    2023-04-18 18:35:04,963 INFO: Parser eventParser: syncWord: AA,seqn: 10,len: 5,opcode: 0000,params: [00 33 00], check_sum: B8
    2023-04-18 18:35:04,966 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-18 18:35:04,983 INFO: Parser eventParser: event_id: [00 33]
    2023-04-18 18:35:04,986 INFO: Parser eventParser: status: [00]
    
  3. ACI Host CLI test: Input set_route_out hfp_ag.

    2023-04-18 18:35:18,259 INFO: input command: set_route_out hfp_ag
    2023-04-18 18:35:18,260 INFO: Parser cmdParser: cmd opcode: 3302 param: [02] name: CMD_SRC_PLAY_SET_PLAY_ROUTE
    2023-04-18 18:35:18,262 INFO: Packet sendPacket: <<<send packet: AA 11 03 00 02 33 02 B5
    2023-04-18 18:35:18,279 INFO: AciHostCLI continuously_read: >>>receive packet: AA 11 05 00 00 00 02 33 00 B5
    2023-04-18 18:35:18,284 INFO: Parser eventParser: syncWord: AA,seqn: 11,len: 5,opcode: 0000,params: [02 33 00], check_sum: B5
    2023-04-18 18:35:18,285 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-18 18:35:18,286 INFO: Parser eventParser: event_id: [02 33]
    2023-04-18 18:35:18,287 INFO: Parser eventParser: status: [00]
    
  4. ACI Host CLI test: Input route_out start.

    2023-04-18 18:35:29,323 INFO: input command: route_out start
    2023-04-18 18:35:29,324 INFO: Parser cmdParser: cmd opcode: 3306 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_START
    2023-04-18 18:35:29,326 INFO: Packet sendPacket: <<<send packet: AA 12 02 00 06 33 B3
    2023-04-18 18:35:29,338 INFO: AciHostCLI continuously_read: >>>receive packet: AA 12 05 00 00 00 06 33 00 B0
    2023-04-18 18:35:29,339 INFO: Parser eventParser: syncWord: AA,seqn: 12,len: 5,opcode: 0000,params: [06 33 00], check_sum: B0
    2023-04-18 18:35:29,347 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-18 18:35:29,351 INFO: Parser eventParser: event_id: [06 33]
    2023-04-18 18:35:29,353 INFO: Parser eventParser: status: [00]
    2023-04-18 18:35:29,539 INFO: AciHostCLI continuously_read: >>>receive packet: AA 13 04 00 38 03 00 02 AC
    2023-04-18 18:35:29,540 INFO: Parser eventParser: syncWord: AA,seqn: 13,len: 4,opcode: 0338,params: [00 02], check_sum: AC
    2023-04-18 18:35:29,542 INFO: Packet sendPacket: <<<send packet: AA 13 05 00 00 00 38 03 00 AD
    2023-04-18 18:35:29,555 INFO: AciHostCLI continuously_read: >>>receive packet: AA 14 04 00 00 03 00 01 E4
    2023-04-18 18:35:29,556 INFO: Parser eventParser: syncWord: AA,seqn: 14,len: 4,opcode: 0300,params: [00 01], check_sum: E4
    2023-04-18 18:35:29,557 INFO: Parser eventParser: event name: APP_EVENT_SCO_STATE
    2023-04-18 18:35:29,561 INFO: Parser eventParser: app_link_id: [00]
    2023-04-18 18:35:29,563 INFO: Parser eventParser: state: [01]
    2023-04-18 18:35:29,565 INFO: Packet sendPacket: <<<send packet: AA 14 05 00 00 00 00 03 00 E4
    
  5. ACI Host CLI test: Input route_in start.

    2023-04-18 18:35:43,561 INFO: input command: route_in start
    2023-04-18 18:35:43,562 INFO: Parser cmdParser: cmd opcode: 3304 param: [] name: CMD_SRC_PLAY_ROUTE_IN_START
    2023-04-18 18:35:43,563 INFO: Packet sendPacket: <<<send packet: AA 15 02 00 04 33 B2
    2023-04-18 18:35:43,597 INFO: AciHostCLI continuously_read: >>>receive packet: AA 15 05 00 00 00 04 33 00 AF
    2023-04-18 18:35:43,610 INFO: Parser eventParser: syncWord: AA,seqn: 15,len: 5,opcode: 0000,params: [04 33 00], check_sum: AF
    2023-04-18 18:35:43,612 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-18 18:35:43,614 INFO: Parser eventParser: event_id: [04 33]
    2023-04-18 18:35:43,615 INFO: Parser eventParser: status: [00]
    
  6. ACI Host CLI test: Input route_in stop.

    2023-04-18 18:36:05,128 INFO: input command: route_in stop
    2023-04-18 18:36:05,128 INFO: Parser cmdParser: cmd opcode: 3305 param: [] name: CMD_SRC_PLAY_ROUTE_IN_STOP
    2023-04-18 18:36:05,130 INFO: Packet sendPacket: <<<send packet: AA 16 02 00 05 33 B0
    2023-04-18 18:36:05,145 INFO: AciHostCLI continuously_read: >>>receive packet: AA 16 05 00 00 00 05 33 00 AD
    2023-04-18 18:36:05,166 INFO: Parser eventParser: syncWord: AA,seqn: 16,len: 5,opcode: 0000,params: [05 33 00], check_sum: AD
    2023-04-18 18:36:05,167 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-18 18:36:05,168 INFO: Parser eventParser: event_id: [05 33]
    2023-04-18 18:36:05,170 INFO: Parser eventParser: status: [00]
    
  7. ACI Host CLI test: Input route_out stop.

    2023-04-18 18:36:32,207 INFO: input command: route_out stop
    2023-04-18 18:36:32,208 INFO: Parser cmdParser: cmd opcode: 3307 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_STOP
    2023-04-18 18:36:32,210 INFO: Packet sendPacket: <<<send packet: AA 18 02 00 07 33 AC
    2023-04-18 18:36:32,221 INFO: AciHostCLI continuously_read: >>>receive packet: AA 18 05 00 00 00 07 33 00 A9
    2023-04-18 18:36:32,227 INFO: Parser eventParser: syncWord: AA,seqn: 18,len: 5,opcode: 0000,params: [07 33 00], check_sum: A9
    2023-04-18 18:36:32,230 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-18 18:36:32,232 INFO: Parser eventParser: event_id: [07 33]
    2023-04-18 18:36:32,233 INFO: Parser eventParser: status: [00]
    2023-04-18 18:36:32,285 INFO: AciHostCLI continuously_read: >>>receive packet: AA 19 04 00 00 03 00 00 E0
    2023-04-18 18:36:32,286 INFO: Parser eventParser: syncWord: AA,seqn: 19,len: 4,opcode: 0300,params: [00 00], check_sum: E0
    2023-04-18 18:36:32,287 INFO: Parser eventParser: event name: APP_EVENT_SCO_STATE
    2023-04-18 18:36:32,288 INFO: Parser eventParser: app_link_id: [00]
    2023-04-18 18:36:32,288 INFO: Parser eventParser: state: [00]
    2023-04-18 18:36:32,290 INFO: Packet sendPacket: <<<send packet: AA 19 05 00 00 00 00 03 00 DF
    
Line-in Source Play (A2DP Output)

Before using, please configure MIC 2 on the EVB and connect to PC through Line-in. After Line-in is connected and music on PC is started, the music data will be sent to the connected BUD through A2DP.

Line-in source play (A2DP output) process:

../../../_images/bt_audio_trx_line_in_src_play.png

Line-in Source Play

ACI Host CLI Test: Line-in Source Play (A2DP Output)

The ACI Host sends CMD_SRC_PLAY_SET_SRC_ROUTE to ACI Device to set the Line-in input route, sends CMD_SRC_PLAY_SET_PLAY_ROUTE to set A2DP output route, sends CMD_SRC_PLAY_ROUTE_IN_START/STOP to start or stop the Line-in input route, and sends CMD_SRC_PLAY_ROUTE_OUT_START/STOP to start or stop the A2DP output route.

ACI Host CLI CMD for Line-in Source Play

Command

Parameters

ACI Host CLI CMD

CMD_SRC_PLAY_SET_SRC_ROUTE(0x3300)

action = linein(0x02, 0x00)

set_route_in linein

CMD_SRC_PLAY_SET_PLAY_ROUTE(0x3302)

action = a2dp(0x01)

set_route_out a2dp

CMD_SRC_PLAY_ROUTE_IN_START(0x3304)

None

route_in start

CMD_SRC_PLAY_ROUTE_IN_STOP(0x3305)

None

route_in stop

CMD_SRC_PLAY_ROUTE_OUT_START(0x3306)

None

route_out start

CMD_SRC_PLAY_ROUTE_OUT_STOP(0x3307)

None

route_out stop

  1. ACI Host CLI test: Connect ACI Device to BUD.

    Please refer to Connect to BUD.

  2. ACI Host CLI test: Input set_route_in Line-in.

    2023-04-18 18:37:54,643 INFO: input command: set_route_in linein
    2023-04-18 18:37:54,643 INFO: Parser cmdParser: cmd opcode: 3300 param: [02 00] name: CMD_SRC_PLAY_SET_SRC_ROUTE
    2023-04-18 18:37:54,645 INFO: Packet sendPacket: <<<send packet: AA 29 03 00 00 33 02 00 9F
    2023-04-18 18:37:54,658 INFO: AciHostCLI continuously_read: >>>receive packet: AA 10 05 00 00 00 00 33 00 B8
    2023-04-18 18:37:54,663 INFO: Parser eventParser: syncWord: AA,seqn: 10,len: 5,opcode: 0000,params: [00 33 00], check_sum: B8
    2023-04-18 18:37:54,667 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-18 18:37:54,670 INFO: Parser eventParser: event_id: [00 33]
    2023-04-18 18:37:54,672 INFO: Parser eventParser: status: [00]
    
  3. ACI Host CLI test: Input set_route_out a2dp.

    2023-04-18 18:38:07,087 INFO: input command: set_route_out a2dp
    2023-04-18 18:38:07,088 INFO: Parser cmdParser: cmd opcode: 3302 param: [01] name: CMD_SRC_PLAY_SET_PLAY_ROUTE
    2023-04-18 18:38:07,090 INFO: Packet sendPacket: <<<send packet: AA 2A 03 00 02 33 01 9D
    2023-04-18 18:38:07,101 INFO: AciHostCLI continuously_read: >>>receive packet: AA 11 05 00 00 00 02 33 00 B5
    2023-04-18 18:38:07,113 INFO: Parser eventParser: syncWord: AA,seqn: 11,len: 5,opcode: 0000,params: [02 33 00], check_sum: B5
    2023-04-18 18:38:07,116 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-18 18:38:07,116 INFO: Parser eventParser: event_id: [02 33]
    2023-04-18 18:38:07,117 INFO: Parser eventParser: status: [00]
    
  4. ACI Host CLI test: Input route_out start.

    2023-04-18 18:38:23,684 INFO: input command: route_out start
    2023-04-18 18:38:23,685 INFO: Parser cmdParser: cmd opcode: 3306 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_START
    2023-04-18 18:38:23,685 INFO: Packet sendPacket: <<<send packet: AA 2B 02 00 06 33 9A
    2023-04-18 18:38:23,699 INFO: AciHostCLI continuously_read: >>>receive packet: AA 12 05 00 00 00 06 33 00 B0
    2023-04-18 18:38:23,702 INFO: Parser eventParser: syncWord: AA,seqn: 12,len: 5,opcode: 0000,params: [06 33 00], check_sum: B0
    2023-04-18 18:38:23,708 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-18 18:38:23,708 INFO: Parser eventParser: event_id: [06 33]
    2023-04-18 18:38:23,709 INFO: Parser eventParser: status: [00]
    
  5. ACI Host CLI test: Input route_in start.

    2023-04-18 18:38:26,773 INFO: input command: route_in start
    2023-04-18 18:38:26,774 INFO: Parser cmdParser: cmd opcode: 3304 param: [] name: CMD_SRC_PLAY_ROUTE_IN_START
    2023-04-18 18:38:26,775 INFO: Packet sendPacket: <<<send packet: AA 2C 02 00 04 33 9B
    2023-04-18 18:38:26,796 INFO: AciHostCLI continuously_read: >>>receive packet: AA 13 05 00 00 00 04 33 00 B1
    2023-04-18 18:38:26,798 INFO: Parser eventParser: syncWord: AA,seqn: 13,len: 5,opcode: 0000,params: [04 33 00], check_sum: B1
    2023-04-18 18:38:26,798 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-18 18:38:26,799 INFO: Parser eventParser: event_id: [04 33]
    2023-04-18 18:38:26,800 INFO: Parser eventParser: status: [00]
    
  6. ACI Host CLI test: Input route_in stop.

    2023-04-18 18:39:21,706 INFO: input command: route_in stop
    2023-04-18 18:39:21,707 INFO: Parser cmdParser: cmd opcode: 3305 param: [] name: CMD_SRC_PLAY_ROUTE_IN_STOP
    2023-04-18 18:39:21,708 INFO: Packet sendPacket: <<<send packet: AA 2D 02 00 05 33 99
    2023-04-18 18:39:21,712 INFO: AciHostCLI continuously_read: >>>receive packet: AA 14 05 00 00 00 05 33 00 AF
    2023-04-18 18:39:21,719 INFO: Parser eventParser: syncWord: AA,seqn: 14,len: 5,opcode: 0000,params: [05 33 00], check_sum: AF
    2023-04-18 18:39:21,723 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-18 18:39:21,723 INFO: Parser eventParser: event_id: [05 33]
    2023-04-18 18:39:21,726 INFO: Parser eventParser: status: [00]
    
  7. ACI Host CLI test: Input route_out stop.

    2023-04-18 18:39:44,974 INFO: input command: route_out stop
    2023-04-18 18:39:44,974 INFO: Parser cmdParser: cmd opcode: 3307 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_STOP
    2023-04-18 18:39:44,976 INFO: Packet sendPacket: <<<send packet: AA 2F 02 00 07 33 95
    2023-04-18 18:39:45,044 INFO: AciHostCLI continuously_read: >>>receive packet: AA 16 05 00 00 00 07 33 00 AB
    2023-04-18 18:39:45,046 INFO: Parser eventParser: syncWord: AA,seqn: 16,len: 5,opcode: 0000,params: [07 33 00], check_sum: AB
    2023-04-18 18:39:45,047 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-18 18:39:45,052 INFO: Parser eventParser: event_id: [07 33]
    2023-04-18 18:39:45,055 INFO: Parser eventParser: status: [00]
    
Line-in Source Play (BIS Output)

Before using, please configure MIC 2 on the EVB and connect to PC through Line-in. After Line-in is connected and music on the PC is started, the music data could be sent to the BUD(s) through BIS.

BIS supports configuring codec type (48k/16k), BIS number (1 BIS containing dual-channel data or 2 BIS containing separate L and R channel data), ULL mode (E2E Latency < 30ms), and other parameters. For details, please refer to ACI_CMD_LEA_BSRC_INIT.

Line-in source play (BIS output) process:

../../../_images/bt_audio_trx_line_in_src_play_bis.png

Line-in Source Play (BIS Output)

ACI Host CLI Test: Line-in Source Play (BIS Output)

When using BIS as output path, it is necessary to initialize BIS first through CMD_LEA_BSRC_INIT. The ACI Host sends CMD_SRC_PLAY_SET_SRC_ROUTE to ACI Device to set the Line-in input route, sends CMD_SRC_PLAY_SET_PLAY_ROUTE to set BIS output route, sends CMD_SRC_PLAY_ROUTE_IN_START/STOP to start or stop the Line-in input route, and sends CMD_SRC_PLAY_ROUTE_OUT_START/STOP (Other than CMD_LEA_BSRC_START/STOP) to start or stop the BIS output route.

ACI Host CLI CMD for BIS Source Play

Command

Parameters

ACI Host CLI CMD

CMD_LEA_BSRC_INIT(0x3020)

codec type = CODEC_CFG_ITEM_48_4(48k) BIS num = 2 encryption = false ull_mode = false pd = 0x2710

bsrcinit 48k_2bis

CMD_SRC_PLAY_SET_SRC_ROUTE(0x3300)

action = linein(0x02, 0x00)

set_route_in linein

CMD_SRC_PLAY_SET_PLAY_ROUTE(0x3302)

action = BIS(0x03)

set_route_out bis

CMD_SRC_PLAY_ROUTE_IN_START(0x3304)

None

route_in start

CMD_SRC_PLAY_ROUTE_IN_STOP(0x3305)

None

route_in stop

CMD_SRC_PLAY_ROUTE_OUT_START(0x3306)

None

route_out start

CMD_SRC_PLAY_ROUTE_OUT_STOP(0x3307)

None

route_out stop

  1. ACI Host CLI test: Initialize BIS.

    2023-05-31 10:25:21,803 INFO: input command: bsrcinit 48k_2bis
    2023-05-31 10:25:21,803 INFO: Parser cmdParser: cmd opcode: 3020 param: [0D 02 00 01 10 27] name: CMD_LEA_BSRC_INIT
    2023-05-31 10:25:21,803 INFO: Packet sendPacket: <<<send packet: AA 0C 07 00 20 30 0D 02 00 01 10 27 11
    2023-05-31 10:25:21,834 INFO: AciHostCLI continuously_read: >>>receive packet: AA 03 05 00 00 00 20 30 00 C6
    2023-05-31 10:25:21,834 INFO: Parser eventParser: syncWord: AA,seqn: 03,len: 5,opcode: 0000,params: [20 30 00], check_sum: C6
    2023-05-31 10:25:21,834 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-31 10:25:21,834 INFO: Parser eventParser: event_id: [20 30]
    2023-05-31 10:25:21,834 INFO: Parser eventParser: status: [00]
    
  2. ACI Host CLI test: Input set_route_out bis.

    2023-05-31 10:24:33,516 INFO: input command: set_route_out bis
    2023-05-31 10:24:33,516 INFO: Parser cmdParser: cmd opcode: 3302 param: [03] name: CMD_SRC_PLAY_SET_PLAY_ROUTE
    2023-05-31 10:24:33,526 INFO: Packet sendPacket: <<<send packet: AA 04 03 00 02 33 03 C1
    2023-05-31 10:24:33,546 INFO: AciHostCLI continuously_read: >>>receive packet: AA 04 05 00 00 00 02 33 00 C2
    2023-05-31 10:24:33,546 INFO: Parser eventParser: syncWord: AA,seqn: 04,len: 5,opcode: 0000,params: [02 33 00], check_sum: C2
    2023-05-31 10:24:33,546 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-31 10:24:33,546 INFO: Parser eventParser: event_id: [02 33]
    2023-05-31 10:24:33,546 INFO: Parser eventParser: status: [00]
    
  3. ACI Host CLI test: Input set_route_in Line-in.

    2023-05-31 10:24:36,385 INFO: input command: set_route_in linein
    2023-05-31 10:24:36,385 INFO: Parser cmdParser: cmd opcode: 3300 param: [02 00] name: CMD_SRC_PLAY_SET_SRC_ROUTE
    2023-05-31 10:24:36,385 INFO: Packet sendPacket: <<<send packet: AA 05 03 00 00 33 02 00 C3
    2023-05-31 10:24:36,405 INFO: AciHostCLI continuously_read: >>>receive packet: AA 05 05 00 00 00 00 33 00 C3
    2023-05-31 10:24:36,405 INFO: Parser eventParser: syncWord: AA,seqn: 05,len: 5,opcode: 0000,params: [00 33 00], check_sum: C3
    2023-05-31 10:24:36,405 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-31 10:24:36,405 INFO: Parser eventParser: event_id: [00 33]
    2023-05-31 10:24:36,415 INFO: Parser eventParser: status: [00]
    
  4. ACI Host CLI test: Input route_out start.

    2023-05-31 10:24:39,606 INFO: input command: route_out start
    2023-05-31 10:24:39,616 INFO: Parser cmdParser: cmd opcode: 3306 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_START
    2023-05-31 10:24:39,616 INFO: Packet sendPacket: <<<send packet: AA 06 02 00 06 33 BF
    2023-05-31 10:24:39,626 INFO: AciHostCLI continuously_read: >>>receive packet: AA 06 05 00 00 00 06 33 00 BC
    2023-05-31 10:24:39,626 INFO: Parser eventParser: syncWord: AA,seqn: 06,len: 5,opcode: 0000,params: [06 33 00], check_sum: BC
    2023-05-31 10:24:39,626 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-31 10:24:39,626 INFO: Parser eventParser: event_id: [06 33]
    2023-05-31 10:24:39,626 INFO: Parser eventParser: status: [00]
    
  5. ACI Host CLI test: Input route_in start.

    2023-05-31 10:24:42,685 INFO: input command: route_in start
    2023-05-31 10:24:42,695 INFO: Parser cmdParser: cmd opcode: 3304 param: [] name: CMD_SRC_PLAY_ROUTE_IN_START
    2023-05-31 10:24:42,695 INFO: Packet sendPacket: <<<send packet: AA 07 02 00 04 33 C0
    2023-05-31 10:24:42,755 INFO: AciHostCLI continuously_read: >>>receive packet: AA 07 05 00 00 00 04 33 00 BD
    2023-05-31 10:24:42,755 INFO: Parser eventParser: syncWord: AA,seqn: 07,len: 5,opcode: 0000,params: [04 33 00], check_sum: BD
    2023-05-31 10:24:42,755 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-31 10:24:42,755 INFO: Parser eventParser: event_id: [04 33]
    2023-05-31 10:24:42,755 INFO: Parser eventParser: status: [00]
    
  6. ACI Host CLI test: Input route_in stop.

    2023-05-31 10:24:50,746 INFO: input command: route_in stop
    2023-05-31 10:24:50,746 INFO: Parser cmdParser: cmd opcode: 3305 param: [] name: CMD_SRC_PLAY_ROUTE_IN_STOP
    2023-05-31 10:24:50,746 INFO: Packet sendPacket: <<<send packet: AA 08 02 00 05 33 BE
    2023-05-31 10:24:50,766 INFO: AciHostCLI continuously_read: >>>receive packet: AA 08 05 00 00 00 05 33 00 BB
    2023-05-31 10:24:50,766 INFO: Parser eventParser: syncWord: AA,seqn: 08,len: 5,opcode: 0000,params: [05 33 00], check_sum: BB
    2023-05-31 10:24:50,766 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-31 10:24:50,766 INFO: Parser eventParser: event_id: [05 33]
    2023-05-31 10:24:50,766 INFO: Parser eventParser: status: [00]
    
  7. ACI Host CLI test: Input route_out stop.

    2023-05-31 10:25:04,644 INFO: input command: route_out stop
    2023-05-31 10:25:04,644 INFO: Parser cmdParser: cmd opcode: 3307 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_STOP
    2023-05-31 10:25:04,644 INFO: Packet sendPacket: <<<send packet: AA 09 02 00 07 33 BB
    2023-05-31 10:25:04,664 INFO: AciHostCLI continuously_read: >>>receive packet: AA 09 05 00 00 00 07 33 00 B8
    2023-05-31 10:25:04,664 INFO: Parser eventParser: syncWord: AA,seqn: 09,len: 5,opcode: 0000,params: [07 33 00], check_sum: B8
    2023-05-31 10:25:04,674 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-31 10:25:04,674 INFO: Parser eventParser: event_id: [07 33]
    2023-05-31 10:25:04,674 INFO: Parser eventParser: status: [00]
    
Line-in Source Play (CIS Output)

Before using, please configure MIC 2 on the EVB and connect to PC through Line-in. After Line-in is connected and music on PC is started, the music data can be sent to the connected BUD(s) through CIS.

In this scenario, CIS supports only the downlink direction of the datapath. The codec type is determined through negotiation (Refer to app_lea_ini_select_media_prefer_codec()). In ULL mode (Configured through the CMD_LEA_CIS_ULL_MODE command, and E2E Latency < 30ms), 48_1 is preferred, while in non-ULL mode, 48_6 takes precedence.

CIS connection process: Please refer to ACI Host CLI Test: Advertising.

Line-in source play (CIS output) process:

../../../_images/bt_audio_trx_line_in_src_play_cis.png

Line-in Source Play (CIS Output)

ACI Host CLI Test: Line-in Source Play (CIS Output)
ACI Host CLI CMD for CIS Source Play

Command

Parameters

ACI Host CLI CMD

CMD_SRC_PLAY_SET_SRC_ROUTE(0x3300)

action = linein(0x02, 0x00)

set_route_in linein

CMD_SRC_PLAY_SET_PLAY_ROUTE(0x3302)

action = cis(0x04)

set_route_out cis

CMD_SRC_PLAY_ROUTE_IN_START(0x3304)

None

route_in start

CMD_SRC_PLAY_ROUTE_IN_STOP(0x3305)

None

route_in stop

CMD_SRC_PLAY_ROUTE_OUT_START(0x3306)

None

route_out start

CMD_SRC_PLAY_ROUTE_OUT_STOP(0x3307)

None

route_out stop

For CIS, it is necessary to establish an LE link. Please refer to Initiator General ACI Host CLI Test for connection procedure.

The ACI Host sends CMD_SRC_PLAY_SET_SRC_ROUTE to ACI Device to set the Line-in input route, sends CMD_SRC_PLAY_SET_PLAY_ROUTE to set CIS output route, sends CMD_SRC_PLAY_ROUTE_IN_START/STOP to start or stop the Line-in input route, and sends CMD_SRC_PLAY_ROUTE_OUT_START/STOP to start or stop the CIS output route.

  1. ACI Host CLI test: Input set_route_in Line-in.

    2023-07-17 16:00:30,147 INFO: input command: set_route_in linein
    2023-07-17 16:00:30,147 INFO: Parser cmdParser: cmd opcode: 3300 param: [02 00] name: CMD_SRC_PLAY_SET_SRC_ROUTE
    2023-07-17 16:00:30,148 INFO: Packet sendPacket: <<<send packet: AA 16 03 00 00 33 02 00 B2
    2023-07-17 16:00:30,154 INFO: AciHostCLI continuously_read: >>>receive packet: AA 16 05 00 00 00 00 33 00 B2
    2023-07-17 16:00:30,155 INFO: Parser eventParser: syncWord: AA,seqn: 16,len: 5,opcode: 0000,params: [00 33 00], check_sum: B2
    2023-07-17 16:00:30,158 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-17 16:00:30,159 INFO: Parser eventParser: event_id: [00 33]
    2023-07-17 16:00:30,160 INFO: Parser eventParser: status: [00]
    
  2. ACI Host CLI test: Input set_route_out cis.

    2023-07-17 16:00:34,130 INFO: input command: set_route_out cis
    2023-07-17 16:00:34,130 INFO: Parser cmdParser: cmd opcode: 3302 param: [04] name: CMD_SRC_PLAY_SET_PLAY_ROUTE
    2023-07-17 16:00:34,131 INFO: Packet sendPacket: <<<send packet: AA 17 03 00 02 33 04 AD
    2023-07-17 16:00:34,148 INFO: AciHostCLI continuously_read: >>>receive packet: AA 17 05 00 00 00 02 33 00 AF
    2023-07-17 16:00:34,149 INFO: Parser eventParser: syncWord: AA,seqn: 17,len: 5,opcode: 0000,params: [02 33 00], check_sum: AF
    2023-07-17 16:00:34,149 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-17 16:00:34,150 INFO: Parser eventParser: event_id: [02 33]
    2023-07-17 16:00:34,150 INFO: Parser eventParser: status: [00]
    
  3. ACI Host CLI test: Input route_out start and the BAP state will transition to state 4 (AUDIO_STREAM_STATE_STREAMING).

    2023-07-17 16:00:37,182 INFO: input command: route_out start
    2023-07-17 16:00:37,182 INFO: Parser cmdParser: cmd opcode: 3306 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_START
    2023-07-17 16:00:37,183 INFO: Packet sendPacket: <<<send packet: AA 18 02 00 06 33 AD
    2023-07-17 16:00:37,199 INFO: AciHostCLI continuously_read: >>>receive packet: AA 18 05 00 00 00 06 33 00 AA
    2023-07-17 16:00:37,199 INFO: Parser eventParser: syncWord: AA,seqn: 18,len: 5,opcode: 0000,params: [06 33 00], check_sum: AA
    2023-07-17 16:00:37,200 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-17 16:00:37,201 INFO: Parser eventParser: event_id: [06 33]
    2023-07-17 16:00:37,201 INFO: Parser eventParser: status: [00]
    2023-07-17 16:00:37,202 INFO: AciHostCLI continuously_read: >>>receive packet: AA 19 07 00 0C 01 90 B3 2C 00 01 63
    2023-07-17 16:00:37,202 INFO: Parser eventParser: syncWord: AA,seqn: 19,len: 7,opcode: 010C,params: [90 B3 2C 00 01], check_sum: 63
    2023-07-17 16:00:37,203 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2023-07-17 16:00:37,203 INFO: Parser eventParser: group_handle: [90 B3 2C 00]
    2023-07-17 16:00:37,203 INFO: Parser eventParser: state: [01]
    2023-07-17 16:00:37,204 INFO: Packet sendPacket: <<<send packet: AA 19 05 00 00 00 0C 01 00 D5
    2023-07-17 16:00:37,215 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1A 07 00 0C 01 90 B3 2C 00 03 60
    2023-07-17 16:00:37,215 INFO: Parser eventParser: syncWord: AA,seqn: 1A,len: 7,opcode: 010C,params: [90 B3 2C 00 03], check_sum: 60
    2023-07-17 16:00:37,216 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2023-07-17 16:00:37,216 INFO: Parser eventParser: group_handle: [90 B3 2C 00]
    2023-07-17 16:00:37,217 INFO: Parser eventParser: state: [03]
    2023-07-17 16:00:37,217 INFO: Packet sendPacket: <<<send packet: AA 1A 05 00 00 00 0C 01 00 D4
    2023-07-17 16:00:38,365 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1B 0A 00 44 80 00 00 24 00 00 00 E8 03 08
    2023-07-17 16:00:38,366 INFO: Parser eventParser: syncWord: AA,seqn: 1B,len: 10,opcode: 8044,params: [00 00 24 00 00 00 E8 03], check_sum: 08
    2023-07-17 16:00:38,367 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_PARAM
    2023-07-17 16:00:38,367 INFO: Parser eventParser: app_link_id: [00]
    2023-07-17 16:00:38,367 INFO: Parser eventParser: res: [00]
    2023-07-17 16:00:38,368 INFO: Parser eventParser: connInterval: [24 00]
    2023-07-17 16:00:38,368 INFO: Parser eventParser: connLatency: [00 00]
    2023-07-17 16:00:38,369 INFO: Parser eventParser: supTimeout: [E8 03]
    2023-07-17 16:00:38,370 INFO: Packet sendPacket: <<<send packet: AA 1B 05 00 00 00 44 80 00 1C
    2023-07-17 16:00:39,595 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1C 0A 00 44 80 01 00 6C 00 00 00 F4 01 B4
    2023-07-17 16:00:39,596 INFO: Parser eventParser: syncWord: AA,seqn: 1C,len: 10,opcode: 8044,params: [01 00 6C 00 00 00 F4 01], check_sum: B4
    2023-07-17 16:00:39,596 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_PARAM
    2023-07-17 16:00:39,597 INFO: Parser eventParser: app_link_id: [01]
    2023-07-17 16:00:39,597 INFO: Parser eventParser: res: [00]
    2023-07-17 16:00:39,597 INFO: Parser eventParser: connInterval: [6C 00]
    2023-07-17 16:00:39,598 INFO: Parser eventParser: connLatency: [00 00]
    2023-07-17 16:00:39,598 INFO: Parser eventParser: supTimeout: [F4 01]
    2023-07-17 16:00:39,599 INFO: Packet sendPacket: <<<send packet: AA 1C 05 00 00 00 44 80 00 1B
    2023-07-17 16:00:41,000 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1D 0A 00 44 80 01 00 24 00 00 00 F4 01 FB
    2023-07-17 16:00:41,001 INFO: Parser eventParser: syncWord: AA,seqn: 1D,len: 10,opcode: 8044,params: [01 00 24 00 00 00 F4 01], check_sum: FB
    2023-07-17 16:00:41,002 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_PARAM
    2023-07-17 16:00:41,002 INFO: Parser eventParser: app_link_id: [01]
    2023-07-17 16:00:41,003 INFO: Parser eventParser: res: [00]
    2023-07-17 16:00:41,003 INFO: Parser eventParser: connInterval: [24 00]
    2023-07-17 16:00:41,003 INFO: Parser eventParser: connLatency: [00 00]
    2023-07-17 16:00:41,004 INFO: Parser eventParser: supTimeout: [F4 01]
    2023-07-17 16:00:41,004 INFO: Packet sendPacket: <<<send packet: AA 1D 05 00 00 00 44 80 00 1A
    2023-07-17 16:00:41,448 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1E 07 00 0C 01 90 B3 2C 00 04 5B
    2023-07-17 16:00:41,449 INFO: Parser eventParser: syncWord: AA,seqn: 1E,len: 7,opcode: 010C,params: [90 B3 2C 00 04], check_sum: 5B
    2023-07-17 16:00:41,449 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2023-07-17 16:00:41,450 INFO: Parser eventParser: group_handle: [90 B3 2C 00]
    2023-07-17 16:00:41,451 INFO: Parser eventParser: state: [04]
    2023-07-17 16:00:41,451 INFO: Packet sendPacket: <<<send packet: AA 1E 05 00 00 00 0C 01 00 D0
    
  4. ACI Host CLI test: Input route_in start.

    2023-07-17 16:00:45,813 INFO: input command: route_in start
    2023-07-17 16:00:45,814 INFO: Parser cmdParser: cmd opcode: 3304 param: [] name: CMD_SRC_PLAY_ROUTE_IN_START
    2023-07-17 16:00:45,814 INFO: Packet sendPacket: <<<send packet: AA 1F 02 00 04 33 A8
    2023-07-17 16:00:45,873 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1F 05 00 00 00 04 33 00 A5
    2023-07-17 16:00:45,874 INFO: Parser eventParser: syncWord: AA,seqn: 1F,len: 5,opcode: 0000,params: [04 33 00], check_sum: A5
    2023-07-17 16:00:45,874 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-17 16:00:45,875 INFO: Parser eventParser: event_id: [04 33]
    2023-07-17 16:00:45,875 INFO: Parser eventParser: status: [00]
    
  5. ACI Host CLI test: Input route_out stop, and the BAP state will transition to state 1 (AUDIO_STREAM_STATE_IDLE_CONFIGURED).

    2023-07-17 16:07:29,020 INFO: input command: route_out stop
    2023-07-17 16:07:29,020 INFO: Parser cmdParser: cmd opcode: 3307 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_STOP
    2023-07-17 16:07:29,021 INFO: Packet sendPacket: <<<send packet: AA 01 02 00 07 33 C3
    2023-07-17 16:07:29,041 INFO: AciHostCLI continuously_read: >>>receive packet: AA 20 05 00 00 00 07 33 00 A1
    2023-07-17 16:07:29,042 INFO: Parser eventParser: syncWord: AA,seqn: 20,len: 5,opcode: 0000,params: [07 33 00], check_sum: A1
    2023-07-17 16:07:29,043 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-17 16:07:29,043 INFO: Parser eventParser: event_id: [07 33]
    2023-07-17 16:07:29,044 INFO: Parser eventParser: status: [00]
    2023-07-17 16:07:29,044 INFO: AciHostCLI continuously_read: >>>receive packet: AA 21 07 00 0C 01 90 B3 2C 00 07 55
    2023-07-17 16:07:29,045 INFO: Parser eventParser: syncWord: AA,seqn: 21,len: 7,opcode: 010C,params: [90 B3 2C 00 07], check_sum: 55
    2023-07-17 16:07:29,045 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2023-07-17 16:07:29,045 INFO: Parser eventParser: group_handle: [90 B3 2C 00]
    2023-07-17 16:07:29,046 INFO: Parser eventParser: state: [07]
    2023-07-17 16:07:29,046 INFO: Packet sendPacket: <<<send packet: AA 02 05 00 00 00 0C 01 00 EC
    2023-07-17 16:07:29,265 INFO: AciHostCLI continuously_read: >>>receive packet: AA 22 07 00 0C 01 90 B3 2C 00 01 5A
    2023-07-17 16:07:29,265 INFO: Parser eventParser: syncWord: AA,seqn: 22,len: 7,opcode: 010C,params: [90 B3 2C 00 01], check_sum: 5A
    2023-07-17 16:07:29,266 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2023-07-17 16:07:29,266 INFO: Parser eventParser: group_handle: [90 B3 2C 00]
    2023-07-17 16:07:29,267 INFO: Parser eventParser: state: [01]
    2023-07-17 16:07:29,267 INFO: Packet sendPacket: <<<send packet: AA 03 05 00 00 00 0C 01 00 EB
    
  6. ACI Host CLI test: Input route_in stop.

    2023-07-17 16:07:33,327 INFO: input command: route_in stop
    2023-07-17 16:07:33,327 INFO: Parser cmdParser: cmd opcode: 3305 param: [] name: CMD_SRC_PLAY_ROUTE_IN_STOP
    2023-07-17 16:07:33,328 INFO: Packet sendPacket: <<<send packet: AA 04 02 00 05 33 C2
    2023-07-17 16:07:33,338 INFO: AciHostCLI continuously_read: >>>receive packet: AA 23 05 00 00 00 05 33 00 A0
    2023-07-17 16:07:33,339 INFO: Parser eventParser: syncWord: AA,seqn: 23,len: 5,opcode: 0000,params: [05 33 00], check_sum: A0
    2023-07-17 16:07:33,340 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-07-17 16:07:33,340 INFO: Parser eventParser: event_id: [05 33]
    2023-07-17 16:07:33,341 INFO: Parser eventParser: status: [00]
    
USB Source Play (BIS Output)

Before using, please connect EVB to PC through USB, select EVB as the audio device. After USB cable is connected and music on PC is started, the music data could be sent to the BUD(s) through BIS.

BIS supports configuring codec type (48k/16k), BIS number (1 BIS containing dual-channel data or 2 BIS containing separate L and R channel data), ULL mode (E2E Latency < 30ms), and other parameters. For details, please refer to ACI_CMD_LEA_BSRC_INIT.

USB source play (BIS output) process:

../../../_images/bt_audio_trx_usb_src_play_bis.png

USB Source Play (BIS Output)

ACI Host CLI Test: USB Source Play (BIS Output)

When using BIS as the output path, it is necessary to initialize BIS firstly through CMD_LEA_BSRC_INIT. The ACI Host sends CMD_SRC_PLAY_SET_SRC_ROUTE to ACI Device to set the USB input route, sends CMD_SRC_PLAY_SET_PLAY_ROUTE to set BIS output route, sends CMD_SRC_PLAY_ROUTE_IN_START/STOP to start or stop the USB input route, and sends CMD_SRC_PLAY_ROUTE_OUT_START/STOP (Other than CMD_LEA_BSRC_START/STOP) to start or stop the BIS output route.

ACI Host CLI CMD for USB Source Play

Command

Parameters

ACI Host CLI CMD

CMD_LEA_BSRC_INIT(0x3020)

codec type = CODEC_CFG_ITEM_48_4(48k) BIS num = 2 encryption = false ull_mode = false pd = 0x2710

bsrcinit 48k_2bis

CMD_SRC_PLAY_SET_SRC_ROUTE(0x3300)

action = usb_ds(0x03, 0x01)

set_route_in usb_ds

CMD_SRC_PLAY_SET_PLAY_ROUTE(0x3302)

action = bis(0x03)

set_route_out bis

CMD_SRC_PLAY_ROUTE_IN_START(0x3304)

None

route_in start

CMD_SRC_PLAY_ROUTE_IN_STOP(0x3305)

None

route_in stop

CMD_SRC_PLAY_ROUTE_OUT_START(0x3306)

None

route_out start

CMD_SRC_PLAY_ROUTE_OUT_STOP(0x3307)

None

route_out stop

  1. ACI Host CLI test: Initialize BIS.

    2023-09-13 10:35:17,929 INFO: input command: bsrcinit 48k_2bis
    2023-09-13 10:35:17,930 INFO: Parser cmdParser: cmd opcode: 3020 param: [0B 02 00 00 10 27] name: CMD_LEA_BSRC_INIT
    2023-09-13 10:35:17,931 INFO: Packet sendPacket: <<<send packet: AA 09 08 00 20 30 0B 02 00 00 10 27 5B
    2023-09-13 10:35:17,940 INFO: AciHostCLI continuously_read: >>>receive packet: AA 04 05 00 00 00 20 30 00 A7
    2023-09-13 10:35:17,943 INFO: Parser eventParser: syncWord: AA,seqn: 04,len: 5,opcode: 0000,params: [20 30 00], check_sum: A7
    2023-09-13 10:35:17,944 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-09-13 10:35:17,944 INFO: Parser eventParser: event_id: [20 30]
    2023-09-13 10:35:17,945 INFO: Parser eventParser: status: [00]
    
  2. ACI Host CLI test: Input set_route_out bis.

    2023-09-13 10:35:30,605 INFO: input command: set_route_out bis
    2023-09-13 10:35:30,605 INFO: Parser cmdParser: cmd opcode: 3302 param: [03] name: CMD_SRC_PLAY_SET_PLAY_ROUTE
    2023-09-13 10:35:30,606 INFO: Packet sendPacket: <<<send packet: AA 0B 03 00 02 33 03 BA
    2023-09-13 10:35:30,617 INFO: AciHostCLI continuously_read: >>>receive packet: AA 06 05 00 00 00 02 33 00 C0
    2023-09-13 10:35:30,617 INFO: Parser eventParser: syncWord: AA,seqn: 06,len: 5,opcode: 0000,params: [02 33 00], check_sum: C0
    2023-09-13 10:35:30,618 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-09-13 10:35:30,620 INFO: Parser eventParser: event_id: [02 33]
    2023-09-13 10:35:30,620 INFO: Parser eventParser: status: [00]
    
  3. ACI Host CLI test: Input set_route_in usb.

    2023-09-13 10:35:27,473 INFO: input command: set_route_in usb
    2023-09-13 10:35:27,473 INFO: Parser cmdParser: cmd opcode: 3300 param: [03 01] name: CMD_SRC_PLAY_SET_SRC_ROUTE
    2023-09-13 10:35:27,474 INFO: Packet sendPacket: <<<send packet: AA 0A 03 00 00 33 03 01 BD
    2023-09-13 10:35:27,485 INFO: AciHostCLI continuously_read: >>>receive packet: AA 05 05 00 00 00 00 33 00 C3
    2023-09-13 10:35:27,487 INFO: Parser eventParser: syncWord: AA,seqn: 05,len: 5,opcode: 0000,params: [00 33 00], check_sum: C3
    2023-09-13 10:35:27,488 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-09-13 10:35:27,489 INFO: Parser eventParser: event_id: [00 33]
    2023-09-13 10:35:27,490 INFO: Parser eventParser: status: [00]
    
  4. ACI Host CLI test: Input route_out start.

    2023-09-13 10:35:33,528 INFO: input command: route_out start
    2023-09-13 10:35:33,529 INFO: Parser cmdParser: cmd opcode: 3306 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_START
    2023-09-13 10:35:33,529 INFO: Packet sendPacket: <<<send packet: AA 0C 02 00 06 33 B9
    2023-09-13 10:35:33,539 INFO: AciHostCLI continuously_read: >>>receive packet: AA 07 05 00 00 00 06 33 00 BB
    2023-09-13 10:35:33,546 INFO: Parser eventParser: syncWord: AA,seqn: 07,len: 5,opcode: 0000,params: [06 33 00], check_sum: BB
    2023-09-13 10:35:33,546 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-09-13 10:35:33,547 INFO: Parser eventParser: event_id: [06 33]
    2023-09-13 10:35:33,548 INFO: Parser eventParser: status: [00]
    
  5. ACI Host CLI test: Input route_in start.

    2023-09-13 10:35:35,952 INFO: input command: route_in start
    2023-09-13 10:35:35,952 INFO: Parser cmdParser: cmd opcode: 3304 param: [] name: CMD_SRC_PLAY_ROUTE_IN_START
    2023-09-13 10:35:35,953 INFO: Packet sendPacket: <<<send packet: AA 0D 02 00 04 33 BA
    2023-09-13 10:35:35,962 INFO: AciHostCLI continuously_read: >>>receive packet: AA 08 05 00 00 00 04 33 00 BC
    2023-09-13 10:35:35,965 INFO: Parser eventParser: syncWord: AA,seqn: 08,len: 5,opcode: 0000,params: [04 33 00], check_sum: BC
    2023-09-13 10:35:35,966 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-09-13 10:35:35,966 INFO: Parser eventParser: event_id: [04 33]
    2023-09-13 10:35:35,967 INFO: Parser eventParser: status: [00]
    
  6. ACI Host CLI test: Input route_in stop.

    2023-09-13 11:24:27,143 INFO: input command: route_in stop
    2023-09-13 11:24:27,143 INFO: Parser cmdParser: cmd opcode: 3305 param: [] name: CMD_SRC_PLAY_ROUTE_IN_STOP
    2023-09-13 11:24:27,143 INFO: Packet sendPacket: <<<send packet: AA 0E 02 00 05 33 B8
    2023-09-13 11:24:27,152 INFO: AciHostCLI continuously_read: >>>receive packet: AA 08 05 00 00 00 05 33 00 BB
    2023-09-13 11:24:27,157 INFO: Parser eventParser: syncWord: AA,seqn: 08,len: 5,opcode: 0000,params: [05 33 00], check_sum: BB
    2023-09-13 11:24:27,157 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-09-13 11:24:27,158 INFO: Parser eventParser: event_id: [05 33]
    2023-09-13 11:24:27,159 INFO: Parser eventParser: status: [00]
    
  7. ACI Host CLI test: Input route_out stop.

    2023-09-13 11:23:57,789 INFO: input command: route_out stop
    2023-09-13 11:23:57,789 INFO: Parser cmdParser: cmd opcode: 3307 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_STOP
    2023-09-13 11:23:57,790 INFO: Packet sendPacket: <<<send packet: AA 0B 02 00 07 33 B9
    2023-09-13 11:23:57,798 INFO: AciHostCLI continuously_read: >>>receive packet: AA 05 05 00 00 00 07 33 00 BC
    2023-09-13 11:23:57,803 INFO: Parser eventParser: syncWord: AA,seqn: 05,len: 5,opcode: 0000,params: [07 33 00], check_sum: BC
    2023-09-13 11:23:57,804 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-09-13 11:23:57,804 INFO: Parser eventParser: event_id: [07 33]
    2023-09-13 11:23:57,805 INFO: Parser eventParser: status: [00]
    
USB Source Play (CIS Output)

Before using, please connect EVB to PC through USB, select EVB as the audio device. After USB cable is connected and music on PC is started, the music data could be sent to the BUD(s) through CIS.

In this scenario, CIS only sets up the downlink direction of the datapath. The codec type is determined through negotiation (Refer to app_lea_ini_select_media_prefer_codec()). In ULL mode (Configured through the CMD_LEA_CIS_ULL_MODE command, and E2E Latency < 30ms), 48_1 is preferred, while in non-ULL mode, 48_6 takes precedence.

CIS connection process: Please refer to ACI Host CLI Test: Advertising.

USB source play (CIS output) process:

../../../_images/bt_audio_trx_usb_src_play_cis_media.png

USB Source Play (CIS Output)

ACI Host CLI Test: USB Source Play (CIS Output)
ACI Host CLI CMD for USB Source Play (CIS Output)

Command

Parameters

ACI Host CLI CMD

CMD_LEA_SCAN(0x3023)

action = start(0x00)

lea_scan start

CMD_LEA_SCAN(0x3023)

action = stop(0x01)

lea_scan stop

CMD_SRC_PLAY_SET_SRC_ROUTE(0x3300)

action = usb_ds(0x03, 0x01)

set_route_in usb_ds

CMD_SRC_PLAY_SET_PLAY_ROUTE(0x3302)

action = cis(0x04)

set_route_out cis

CMD_SRC_PLAY_ROUTE_IN_START(0x3304)

None

route_in start

CMD_SRC_PLAY_ROUTE_IN_STOP(0x3305)

None

route_in stop

CMD_SRC_PLAY_ROUTE_OUT_START(0x3306)

None

route_out start

CMD_SRC_PLAY_ROUTE_OUT_STOP(0x3307)

None

route_out stop

For CIS, it is necessary to establish an LE link. Please refer to Initiator General ACI Host CLI Test for connection procedure.

  1. ACI Host CLI test: Input set_route_in usb_ds.

    2024-01-23 17:19:23,499 INFO: input command: set_route_in usb_ds
    2024-01-23 17:19:23,500 INFO: Parser cmdParser: cmd opcode: 3300 param: [03 01] name: CMD_SRC_PLAY_SET_SRC_ROUTE
    2024-01-23 17:19:23,501 INFO: Packet sendPacket: <<<send packet: AA 29 04 00 00 33 03 01 9C
    2024-01-23 17:19:23,514 INFO: AciHostCLI continuously_read: >>>receive packet: AA 23 05 00 00 00 00 33 00 A5
    2024-01-23 17:19:23,515 INFO: Parser eventParser: syncWord: AA,seqn: 23,len: 5,opcode: 0000,params: [00 33 00], check_sum: A5
    2024-01-23 17:19:23,515 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-01-23 17:19:23,516 INFO: Parser eventParser: event_id: [00 33]
    2024-01-23 17:19:23,516 INFO: Parser eventParser: status: [00]
    
  2. ACI Host CLI test: Input set_route_out cis.

    2024-01-23 17:19:25,989 INFO: input command: set_route_out cis
    2024-01-23 17:19:25,990 INFO: Parser cmdParser: cmd opcode: 3302 param: [04] name: CMD_SRC_PLAY_SET_PLAY_ROUTE
    2024-01-23 17:19:25,991 INFO: Packet sendPacket: <<<send packet: AA 2A 03 00 02 33 04 9A
    2024-01-23 17:19:26,003 INFO: AciHostCLI continuously_read: >>>receive packet: AA 24 05 00 00 00 02 33 00 A2
    2024-01-23 17:19:26,007 INFO: Parser eventParser: syncWord: AA,seqn: 24,len: 5,opcode: 0000,params: [02 33 00], check_sum: A2
    2024-01-23 17:19:26,009 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-01-23 17:19:26,009 INFO: Parser eventParser: event_id: [02 33]
    2024-01-23 17:19:26,010 INFO: Parser eventParser: status: [00]
    
  3. ACI Host CLI test: Input route_out start.

    2024-01-23 17:19:27,670 INFO: Parser cmdParser: cmd opcode: 3306 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_START
    2024-01-23 17:19:27,671 INFO: Packet sendPacket: <<<send packet: AA 2B 02 00 06 33 9A
    2024-01-23 17:19:27,679 INFO: AciHostCLI continuously_read: >>>receive packet: AA 25 05 00 00 00 06 33 00 9D
    2024-01-23 17:19:27,679 INFO: Parser eventParser: syncWord: AA,seqn: 25,len: 5,opcode: 0000,params: [06 33 00], check_sum: 9D
    2024-01-23 17:19:27,680 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-01-23 17:19:27,681 INFO: Parser eventParser: event_id: [06 33]
    2024-01-23 17:19:27,682 INFO: Parser eventParser: status: [00]
    2024-01-23 17:19:27,685 INFO: AciHostCLI continuously_read: >>>receive packet: AA 26 07 00 41 01 A8 E1 2C 00 01 DB
    2024-01-23 17:19:27,686 INFO: Parser eventParser: syncWord: AA,seqn: 26,len: 7,opcode: 0141,params: [A8 E1 2C 00 01], check_sum: DB
    2024-01-23 17:19:27,686 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2024-01-23 17:19:27,687 INFO: Parser eventParser: group_handle: [A8 E1 2C 00]
    2024-01-23 17:19:27,687 INFO: Parser eventParser: state: [01]
    2024-01-23 17:19:27,690 INFO: Packet sendPacket: <<<send packet: AA 2C 05 00 00 00 41 01 00 8D
    2024-01-23 17:19:27,694 INFO: AciHostCLI continuously_read: >>>receive packet: AA 27 07 00 41 01 A8 E1 2C 00 03 D8
    2024-01-23 17:19:27,695 INFO: Parser eventParser: syncWord: AA,seqn: 27,len: 7,opcode: 0141,params: [A8 E1 2C 00 03], check_sum: D8
    2024-01-23 17:19:27,698 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2024-01-23 17:19:27,699 INFO: Parser eventParser: group_handle: [A8 E1 2C 00]
    2024-01-23 17:19:27,699 INFO: Parser eventParser: state: [03]
    2024-01-23 17:19:27,700 INFO: Packet sendPacket: <<<send packet: AA 2D 05 00 00 00 41 01 00 8C
    2024-01-23 17:19:28,092 INFO: AciHostCLI continuously_read: >>>receive packet: AA 28 0A 00 44 80 00 00 18 00 00 00 F4 01 FD
    2024-01-23 17:19:28,093 INFO: Parser eventParser: syncWord: AA,seqn: 28,len: 10,opcode: 8044,params: [00 00 18 00 00 00 F4 01], check_sum: FD
    2024-01-23 17:19:28,093 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_PARAM
    2024-01-23 17:19:28,094 INFO: Parser eventParser: app_link_id: [00]
    2024-01-23 17:19:28,095 INFO: Parser eventParser: res: [00]
    2024-01-23 17:19:28,096 INFO: Parser eventParser: connInterval: [18 00]
    2024-01-23 17:19:28,096 INFO: Parser eventParser: connLatency: [00 00]
    2024-01-23 17:19:28,097 INFO: Parser eventParser: supTimeout: [F4 01]
    2024-01-23 17:19:28,097 INFO: Packet sendPacket: <<<send packet: AA 2E 05 00 00 00 44 80 00 09
    2024-01-23 17:19:28,411 INFO: AciHostCLI continuously_read: >>>receive packet: AA 29 0A 00 44 80 00 00 20 00 00 00 F4 01 F4
    2024-01-23 17:19:28,412 INFO: Parser eventParser: syncWord: AA,seqn: 29,len: 10,opcode: 8044,params: [00 00 20 00 00 00 F4 01], check_sum: F4
    2024-01-23 17:19:28,415 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_PARAM
    2024-01-23 17:19:28,415 INFO: Parser eventParser: app_link_id: [00]
    2024-01-23 17:19:28,416 INFO: Parser eventParser: res: [00]
    2024-01-23 17:19:28,416 INFO: Parser eventParser: connInterval: [20 00]
    2024-01-23 17:19:28,417 INFO: Parser eventParser: connLatency: [00 00]
    2024-01-23 17:19:28,417 INFO: Parser eventParser: supTimeout: [F4 01]
    2024-01-23 17:19:28,418 INFO: Packet sendPacket: <<<send packet: AA 2F 05 00 00 00 44 80 00 08
    2024-01-23 17:19:28,811 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2A 07 00 41 01 A8 E1 2C 00 04 D4
    2024-01-23 17:19:28,811 INFO: Parser eventParser: syncWord: AA,seqn: 2A,len: 7,opcode: 0141,params: [A8 E1 2C 00 04], check_sum: D4
    2024-01-23 17:19:28,812 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2024-01-23 17:19:28,812 INFO: Parser eventParser: group_handle: [A8 E1 2C 00]
    2024-01-23 17:19:28,814 INFO: Parser eventParser: state: [04]
    2024-01-23 17:19:28,815 INFO: Packet sendPacket: <<<send packet: AA 30 05 00 00 00 41 01 00 89
    
  4. ACI Host CLI test: Input route_in start.

    2024-01-23 17:19:30,390 INFO: input command: route_in start
    2024-01-23 17:19:30,390 INFO: Parser cmdParser: cmd opcode: 3304 param: [] name: CMD_SRC_PLAY_ROUTE_IN_START
    2024-01-23 17:19:30,391 INFO: Packet sendPacket: <<<send packet: AA 31 02 00 04 33 96
    2024-01-23 17:19:30,422 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2B 05 00 00 00 04 33 00 99
    2024-01-23 17:19:30,423 INFO: Parser eventParser: syncWord: AA,seqn: 2B,len: 5,opcode: 0000,params: [04 33 00], check_sum: 99
    2024-01-23 17:19:30,425 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-01-23 17:19:30,427 INFO: Parser eventParser: event_id: [04 33]
    2024-01-23 17:19:30,431 INFO: Parser eventParser: status: [00]
    
  5. ACI Host CLI test: Input route_out stop.

    2024-01-23 17:19:35,613 INFO: input command: route_out stop
    2024-01-23 17:19:35,613 INFO: Parser cmdParser: cmd opcode: 3307 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_STOP
    2024-01-23 17:19:35,614 INFO: Packet sendPacket: <<<send packet: AA 32 02 00 07 33 92
    2024-01-23 17:19:35,622 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2C 05 00 00 00 07 33 00 95
    2024-01-23 17:19:35,623 INFO: Parser eventParser: syncWord: AA,seqn: 2C,len: 5,opcode: 0000,params: [07 33 00], check_sum: 95
    2024-01-23 17:19:35,626 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-01-23 17:19:35,627 INFO: Parser eventParser: event_id: [07 33]
    2024-01-23 17:19:35,628 INFO: Parser eventParser: status: [00]
    2024-01-23 17:19:35,629 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2D 07 00 41 01 A8 E1 2C 00 07 CE
    2024-01-23 17:19:35,629 INFO: Parser eventParser: syncWord: AA,seqn: 2D,len: 7,opcode: 0141,params: [A8 E1 2C 00 07], check_sum: CE
    2024-01-23 17:19:35,630 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2024-01-23 17:19:35,633 INFO: Parser eventParser: group_handle: [A8 E1 2C 00]
    2024-01-23 17:19:35,634 INFO: Parser eventParser: state: [07]
    2024-01-23 17:19:35,635 INFO: Packet sendPacket: <<<send packet: AA 33 05 00 00 00 41 01 00 86
    2024-01-23 17:19:35,814 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2E 07 00 41 01 A8 E1 2C 00 01 D3
    2024-01-23 17:19:35,815 INFO: Parser eventParser: syncWord: AA,seqn: 2E,len: 7,opcode: 0141,params: [A8 E1 2C 00 01], check_sum: D3
    2024-01-23 17:19:35,816 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2024-01-23 17:19:35,820 INFO: Parser eventParser: group_handle: [A8 E1 2C 00]
    2024-01-23 17:19:35,821 INFO: Parser eventParser: state: [01]
    2024-01-23 17:19:35,823 INFO: Packet sendPacket: <<<send packet: AA 34 05 00 00 00 41 01 00 85
    2024-01-23 17:19:36,132 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2F 0A 00 44 80 00 00 18 00 00 00 F4 01 F6
    2024-01-23 17:19:36,134 INFO: Parser eventParser: syncWord: AA,seqn: 2F,len: 10,opcode: 8044,params: [00 00 18 00 00 00 F4 01], check_sum: F6
    2024-01-23 17:19:36,134 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_PARAM
    2024-01-23 17:19:36,135 INFO: Parser eventParser: app_link_id: [00]
    2024-01-23 17:19:36,135 INFO: Parser eventParser: res: [00]
    2024-01-23 17:19:36,136 INFO: Parser eventParser: connInterval: [18 00]
    2024-01-23 17:19:36,137 INFO: Parser eventParser: connLatency: [00 00]
    2024-01-23 17:19:36,137 INFO: Parser eventParser: supTimeout: [F4 01]
    2024-01-23 17:19:36,138 INFO: Packet sendPacket: <<<send packet: AA 35 05 00 00 00 44 80 00 02
    
  6. ACI Host CLI test: Input route_in stop.

    2024-01-23 17:19:37,889 INFO: input command: route_in stop
    2024-01-23 17:19:37,890 INFO: Parser cmdParser: cmd opcode: 3305 param: [] name: CMD_SRC_PLAY_ROUTE_IN_STOP
    2024-01-23 17:19:37,890 INFO: Packet sendPacket: <<<send packet: AA 36 02 00 05 33 90
    2024-01-23 17:19:37,904 INFO: AciHostCLI continuously_read: >>>receive packet: AA 30 05 00 00 00 05 33 00 93
    2024-01-23 17:19:37,904 INFO: Parser eventParser: syncWord: AA,seqn: 30,len: 5,opcode: 0000,params: [05 33 00], check_sum: 93
    2024-01-23 17:19:37,905 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-01-23 17:19:37,905 INFO: Parser eventParser: event_id: [05 33]
    2024-01-23 17:19:37,906 INFO: Parser eventParser: status: [00]
    
USB Source Play (CIS Input and Output)

Before using, please connect the EVB and PC through USB and select the EVB as the audio device. Once the USB cable is connected, calls or simultaneous recording and playing of music can be initiated on the PC. The USB downstream data, transferred to the EVB, can be sent to BUD(s) through the CIS, and the data received from the BUD(s) through CIS can be transmitted upstream to the PC through USB.

In this scenario, CIS will set up both downlink and uplink directions of the datapaths. The codec type is determined through negotiation (Refer to app_lea_ini_select_conversation_prefer_codec()), and 16_2 is preferred.

CIS connection process: Please refer to ACI Host CLI Test: Advertising.

USB source play (CIS input and output) process:

../../../_images/bt_audio_trx_usb_src_play_cis_conv.png

USB Source Play (CIS Input and Output)

ACI Host CLI Test: USB Source Play (CIS Input and Output)
ACI Host CLI CMD for USB Source Play (CIS Input and Output)

Command

Parameters

ACI Host CLI CMD

CMD_LEA_SCAN(0x3023)

action = start(0x00)

lea_scan start

CMD_LEA_SCAN(0x3023)

action = stop(0x01)

lea_scan stop

CMD_SRC_PLAY_SET_SRC_ROUTE(0x3300)

action = usb_ds_us(0x03, 0x03)

set_route_in usb_ds_us

CMD_SRC_PLAY_SET_PLAY_ROUTE(0x3302)

action = cis(0x04)

set_route_out cis

CMD_SRC_PLAY_ROUTE_IN_START(0x3304)

None

route_in start

CMD_SRC_PLAY_ROUTE_IN_STOP(0x3305)

None

route_in stop

CMD_SRC_PLAY_ROUTE_OUT_START(0x3306)

None

route_out start

CMD_SRC_PLAY_ROUTE_OUT_STOP(0x3307)

None

route_out stop

For CIS, it is necessary to establish an LE link. Please refer to Initiator General ACI Host CLI Test for the connection procedure.

In addition, in the CIS input and output mode, it is necessary to establish a call using call control commands (Such as incoming call and accept call) before initiating start CIS.

  1. ACI Host CLI test: Input set_route_in usb_ds_us.

    2024-01-23 17:18:40,848 INFO: input command: set_route_in usb_ds_us
    2024-01-23 17:18:40,849 INFO: Parser cmdParser: cmd opcode: 3300 param: [03 03] name: CMD_SRC_PLAY_SET_SRC_ROUTE
    2024-01-23 17:18:40,850 INFO: Packet sendPacket: <<<send packet: AA 19 04 00 00 33 03 03 AA
    2024-01-23 17:18:40,857 INFO: AciHostCLI continuously_read: >>>receive packet: AA 13 05 00 00 00 00 33 00 B5
    2024-01-23 17:18:40,858 INFO: Parser eventParser: syncWord: AA,seqn: 13,len: 5,opcode: 0000,params: [00 33 00], check_sum: B5
    2024-01-23 17:18:40,860 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-01-23 17:18:40,863 INFO: Parser eventParser: event_id: [00 33]
    2024-01-23 17:18:40,866 INFO: Parser eventParser: status: [00]
    
  2. ACI Host CLI test: Input set_route_out cis.

    2024-01-23 17:18:42,952 INFO: input command: set_route_out cis
    2024-01-23 17:18:42,952 INFO: Parser cmdParser: cmd opcode: 3302 param: [04] name: CMD_SRC_PLAY_SET_PLAY_ROUTE
    2024-01-23 17:18:42,953 INFO: Packet sendPacket: <<<send packet: AA 1A 03 00 02 33 04 AA
    2024-01-23 17:18:42,960 INFO: AciHostCLI continuously_read: >>>receive packet: AA 14 05 00 00 00 02 33 00 B2
    2024-01-23 17:18:42,961 INFO: Parser eventParser: syncWord: AA,seqn: 14,len: 5,opcode: 0000,params: [02 33 00], check_sum: B2
    2024-01-23 17:18:42,962 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-01-23 17:18:42,966 INFO: Parser eventParser: event_id: [02 33]
    2024-01-23 17:18:42,968 INFO: Parser eventParser: status: [00]
    
  3. ACI Host CLI test: Call control procedure (incoming call and accept call).

    2024-01-23 17:18:54,685 INFO: input command: ccp_action incomingcall
    2024-01-23 17:18:54,686 INFO: Parser cmdParser: cmd opcode: 3032 param: [05 00] name: CMD_LEA_CCP_ACTION
    2024-01-23 17:18:54,687 INFO: Packet sendPacket: <<<send packet: AA 1B 04 00 32 30 05 00 7A
    2024-01-23 17:18:54,701 INFO: AciHostCLI continuously_read: >>>receive packet: AA 15 03 00 48 01 01 9E
    2024-01-23 17:18:54,701 INFO: Parser eventParser: syncWord: AA,seqn: 15,len: 3,opcode: 0148,params: [01], check_sum: 9E
    2024-01-23 17:18:54,702 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_CCP_CREATE_CALL
    2024-01-23 17:18:54,702 INFO: Parser eventParser: call_index: [01]
    2024-01-23 17:18:54,703 INFO: Packet sendPacket: <<<send packet: AA 1C 05 00 00 00 48 01 00 96
    2024-01-23 17:18:54,717 INFO: AciHostCLI continuously_read: >>>receive packet: AA 16 05 00 00 00 32 30 00 83
    2024-01-23 17:18:54,718 INFO: Parser eventParser: syncWord: AA,seqn: 16,len: 5,opcode: 0000,params: [32 30 00], check_sum: 83
    2024-01-23 17:18:54,718 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-01-23 17:18:54,719 INFO: Parser eventParser: event_id: [32 30]
    2024-01-23 17:18:54,719 INFO: Parser eventParser: status: [00]
    2024-01-23 17:18:56,312 INFO: input command: ccp_action accept1
    2024-01-23 17:18:56,313 INFO: Parser cmdParser: cmd opcode: 3032 param: [14 01] name: CMD_LEA_CCP_ACTION
    2024-01-23 17:18:56,314 INFO: Packet sendPacket: <<<send packet: AA 1D 04 00 32 30 14 01 68
    2024-01-23 17:18:56,329 INFO: AciHostCLI continuously_read: >>>receive packet: AA 17 05 00 00 00 32 30 00 82
    2024-01-23 17:18:56,330 INFO: Parser eventParser: syncWord: AA,seqn: 17,len: 5,opcode: 0000,params: [32 30 00], check_sum: 82
    2024-01-23 17:18:56,332 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-01-23 17:18:56,333 INFO: Parser eventParser: event_id: [32 30]
    2024-01-23 17:18:56,333 INFO: Parser eventParser: status: [00]
    
  4. ACI Host CLI test: Input route_out start.

    2024-01-23 17:19:06,596 INFO: input command: route_out start
    2024-01-23 17:19:06,597 INFO: Parser cmdParser: cmd opcode: 3306 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_START
    2024-01-23 17:19:06,598 INFO: Packet sendPacket: <<<send packet: AA 1E 02 00 06 33 A7
    2024-01-23 17:19:06,619 INFO: AciHostCLI continuously_read: >>>receive packet: AA 18 05 00 00 00 06 33 00 AA
    2024-01-23 17:19:06,620 INFO: Parser eventParser: syncWord: AA,seqn: 18,len: 5,opcode: 0000,params: [06 33 00], check_sum: AA
    2024-01-23 17:19:06,620 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-01-23 17:19:06,621 INFO: Parser eventParser: event_id: [06 33]
    2024-01-23 17:19:06,621 INFO: Parser eventParser: status: [00]
    2024-01-23 17:19:06,622 INFO: AciHostCLI continuously_read: >>>receive packet: AA 19 07 00 41 01 A8 E1 2C 00 01 E8
    2024-01-23 17:19:06,622 INFO: Parser eventParser: syncWord: AA,seqn: 19,len: 7,opcode: 0141,params: [A8 E1 2C 00 01], check_sum: E8
    2024-01-23 17:19:06,623 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2024-01-23 17:19:06,624 INFO: Parser eventParser: group_handle: [A8 E1 2C 00]
    2024-01-23 17:19:06,625 INFO: Parser eventParser: state: [01]
    2024-01-23 17:19:06,626 INFO: Packet sendPacket: <<<send packet: AA 1F 05 00 00 00 41 01 00 9A
    2024-01-23 17:19:06,635 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1A 07 00 41 01 A8 E1 2C 00 03 E5
    2024-01-23 17:19:06,636 INFO: Parser eventParser: syncWord: AA,seqn: 1A,len: 7,opcode: 0141,params: [A8 E1 2C 00 03], check_sum: E5
    2024-01-23 17:19:06,637 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2024-01-23 17:19:06,638 INFO: Parser eventParser: group_handle: [A8 E1 2C 00]
    2024-01-23 17:19:06,639 INFO: Parser eventParser: state: [03]
    2024-01-23 17:19:06,640 INFO: Packet sendPacket: <<<send packet: AA 20 05 00 00 00 41 01 00 99
    2024-01-23 17:19:07,002 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1B 0A 00 44 80 00 00 18 00 00 00 F4 01 0A
    2024-01-23 17:19:07,003 INFO: Parser eventParser: syncWord: AA,seqn: 1B,len: 10,opcode: 8044,params: [00 00 18 00 00 00 F4 01], check_sum: 0A
    2024-01-23 17:19:07,006 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_PARAM
    2024-01-23 17:19:07,009 INFO: Parser eventParser: app_link_id: [00]
    2024-01-23 17:19:07,010 INFO: Parser eventParser: res: [00]
    2024-01-23 17:19:07,011 INFO: Parser eventParser: connInterval: [18 00]
    2024-01-23 17:19:07,011 INFO: Parser eventParser: connLatency: [00 00]
    2024-01-23 17:19:07,012 INFO: Parser eventParser: supTimeout: [F4 01]
    2024-01-23 17:19:07,013 INFO: Packet sendPacket: <<<send packet: AA 21 05 00 00 00 44 80 00 16
    2024-01-23 17:19:07,257 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1C 07 00 41 01 A8 E1 2C 00 04 E2
    2024-01-23 17:19:07,258 INFO: Parser eventParser: syncWord: AA,seqn: 1C,len: 7,opcode: 0141,params: [A8 E1 2C 00 04], check_sum: E2
    2024-01-23 17:19:07,259 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2024-01-23 17:19:07,260 INFO: Parser eventParser: group_handle: [A8 E1 2C 00]
    2024-01-23 17:19:07,261 INFO: Parser eventParser: state: [04]
    2024-01-23 17:19:07,263 INFO: Packet sendPacket: <<<send packet: AA 22 05 00 00 00 41 01 00 97
    
  5. ACI Host CLI test: Input route_in start.

    2024-01-23 17:19:08,892 INFO: input command: route_in start
    2024-01-23 17:19:08,893 INFO: Parser cmdParser: cmd opcode: 3304 param: [] name: CMD_SRC_PLAY_ROUTE_IN_START
    2024-01-23 17:19:08,894 INFO: Packet sendPacket: <<<send packet: AA 23 02 00 04 33 A4
    2024-01-23 17:19:08,948 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1D 05 00 00 00 04 33 00 A7
    2024-01-23 17:19:08,948 INFO: Parser eventParser: syncWord: AA,seqn: 1D,len: 5,opcode: 0000,params: [04 33 00], check_sum: A7
    2024-01-23 17:19:08,949 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-01-23 17:19:08,949 INFO: Parser eventParser: event_id: [04 33]
    2024-01-23 17:19:08,950 INFO: Parser eventParser: status: [00]
    
  6. ACI Host CLI test: Input route_out stop.

    2024-01-23 17:19:15,611 INFO: input command: route_out stop
    2024-01-23 17:19:15,612 INFO: Parser cmdParser: cmd opcode: 3307 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_STOP
    2024-01-23 17:19:15,613 INFO: Packet sendPacket: <<<send packet: AA 24 02 00 07 33 A0
    2024-01-23 17:19:15,633 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1E 05 00 00 00 07 33 00 A3
    2024-01-23 17:19:15,634 INFO: Parser eventParser: syncWord: AA,seqn: 1E,len: 5,opcode: 0000,params: [07 33 00], check_sum: A3
    2024-01-23 17:19:15,634 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-01-23 17:19:15,635 INFO: Parser eventParser: event_id: [07 33]
    2024-01-23 17:19:15,636 INFO: Parser eventParser: status: [00]
    2024-01-23 17:19:15,636 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1F 07 00 41 01 A8 E1 2C 00 07 DC
    2024-01-23 17:19:15,637 INFO: Parser eventParser: syncWord: AA,seqn: 1F,len: 7,opcode: 0141,params: [A8 E1 2C 00 07], check_sum: DC
    2024-01-23 17:19:15,637 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2024-01-23 17:19:15,639 INFO: Parser eventParser: group_handle: [A8 E1 2C 00]
    2024-01-23 17:19:15,639 INFO: Parser eventParser: state: [07]
    2024-01-23 17:19:15,640 INFO: Packet sendPacket: <<<send packet: AA 25 05 00 00 00 41 01 00 94
    2024-01-23 17:19:15,808 INFO: AciHostCLI continuously_read: >>>receive packet: AA 20 07 00 41 01 A8 E1 2C 00 01 E1
    2024-01-23 17:19:15,809 INFO: Parser eventParser: syncWord: AA,seqn: 20,len: 7,opcode: 0141,params: [A8 E1 2C 00 01], check_sum: E1
    2024-01-23 17:19:15,810 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAP_STATE
    2024-01-23 17:19:15,811 INFO: Parser eventParser: group_handle: [A8 E1 2C 00]
    2024-01-23 17:19:15,811 INFO: Parser eventParser: state: [01]
    2024-01-23 17:19:15,812 INFO: Packet sendPacket: <<<send packet: AA 26 05 00 00 00 41 01 00 93
    2024-01-23 17:19:16,032 INFO: AciHostCLI continuously_read: >>>receive packet: AA 21 0A 00 44 80 00 00 18 00 00 00 F4 01 04
    2024-01-23 17:19:16,033 INFO: Parser eventParser: syncWord: AA,seqn: 21,len: 10,opcode: 8044,params: [00 00 18 00 00 00 F4 01], check_sum: 04
    2024-01-23 17:19:16,034 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_PARAM
    2024-01-23 17:19:16,035 INFO: Parser eventParser: app_link_id: [00]
    2024-01-23 17:19:16,038 INFO: Parser eventParser: res: [00]
    2024-01-23 17:19:16,039 INFO: Parser eventParser: connInterval: [18 00]
    2024-01-23 17:19:16,040 INFO: Parser eventParser: connLatency: [00 00]
    2024-01-23 17:19:16,041 INFO: Parser eventParser: supTimeout: [F4 01]
    2024-01-23 17:19:16,041 INFO: Packet sendPacket: <<<send packet: AA 27 05 00 00 00 44 80 00 10
    
  7. ACI Host CLI test: Input route_in stop.

    2024-01-23 17:19:17,316 INFO: input command: route_in stop
    2024-01-23 17:19:17,317 INFO: Parser cmdParser: cmd opcode: 3305 param: [] name: CMD_SRC_PLAY_ROUTE_IN_STOP
    2024-01-23 17:19:17,318 INFO: Packet sendPacket: <<<send packet: AA 28 02 00 05 33 9E
    2024-01-23 17:19:17,326 INFO: AciHostCLI continuously_read: >>>receive packet: AA 22 05 00 00 00 05 33 00 A1
    2024-01-23 17:19:17,327 INFO: Parser eventParser: syncWord: AA,seqn: 22,len: 5,opcode: 0000,params: [05 33 00], check_sum: A1
    2024-01-23 17:19:17,331 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-01-23 17:19:17,334 INFO: Parser eventParser: event_id: [05 33]
    2024-01-23 17:19:17,336 INFO: Parser eventParser: status: [00]
    
SD Card Source Play

Before using, please rework the LDO on SD card slot of EVB. Please create a folder named audio under the root directory and place the MP3 files in it. Then, insert the SD card into the corresponding card slot.

Note

DSP bin under release bin\bank0 should be downloaded.

../../../_images/bt_audio_trx_rework_ldo_on_evb.png

Rework LDO on EVB

After the SD card is inserted, the SD card source play can be started. SD card source play process:

../../../_images/bt_audio_trx_sd_card_src_play.png

SD Card Source Play

ACI Host CLI Test: SD Card Source Play

The ACI Host sends CMD_SRC_PLAY_SET_SRC_ROUTE to the ACI Device to set the SD card input route, sends CMD_SRC_PLAY_SET_PLAY_ROUTE to set the local output route, sends CMD_SRC_PLAY_ROUTE_IN_START/STOP to start or stop the SD card input route, and sends CMD_SRC_PLAY_ROUTE_OUT_START/STOP to start or stop the local output route.

ACI Host CLI CMD for SD Card Source Play

Command

Parameters

ACI Host CLI CMD

CMD_SRC_PLAY_SET_SRC_ROUTE(0x3300)

action = sd_card(0x04, 0x00)

set_route_in sd_card

CMD_SRC_PLAY_SET_PLAY_ROUTE(0x3302)

action = local(0x05)

set_route_out local

CMD_SRC_PLAY_ROUTE_IN_START(0x3304)

None

route_in start

CMD_SRC_PLAY_ROUTE_IN_STOP(0x3305)

None

route_in stop

CMD_SRC_PLAY_ROUTE_OUT_START(0x3306)

None

route_out start

CMD_SRC_PLAY_ROUTE_OUT_STOP(0x3307)

None

route_out stop

  1. ACI Host CLI test: Insert SD card to EVB.

  2. ACI Host CLI test: Input set_route_in sd_card.

    2023-11-08 15:34:24,936 INFO: input command: set_route_in sd_card
    2023-11-08 15:34:24,936 INFO: Parser cmdParser: cmd opcode: 3300 param: [04 00] name: CMD_SRC_PLAY_SET_SRC_ROUTE
    2023-11-08 15:34:24,937 INFO: Packet sendPacket: <<<send packet: AA 03 04 00 00 33 04 00 C2
    2023-11-08 15:34:24,945 INFO: AciHostCLI continuously_read: >>>receive packet: AA 03 05 00 00 00 00 33 02 C3
    2023-11-08 15:34:24,946 INFO: Parser eventParser: syncWord: AA,seqn: 03,len: 5,opcode: 0000,params: [00 33 02], check_sum: C3
    2023-11-08 15:34:24,947 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-11-08 15:34:24,947 INFO: Parser eventParser: event_id: [00 33]
    2023-11-08 15:34:24,947 INFO: Parser eventParser: status: [02]
    
  3. ACI Host CLI test: Input set_route_out local.

    2023-11-08 15:35:32,279 INFO: input command: set_route_out local
    2023-11-08 15:35:32,280 INFO: Parser cmdParser: cmd opcode: 3302 param: [05] name: CMD_SRC_PLAY_SET_PLAY_ROUTE
    2023-11-08 15:35:32,280 INFO: Packet sendPacket: <<<send packet: AA 04 03 00 02 33 05 BF
    2023-11-08 15:35:32,368 INFO: AciHostCLI continuously_read: >>>receive packet: AA 04 05 00 00 00 02 33 02 C0
    2023-11-08 15:35:32,368 INFO: Parser eventParser: syncWord: AA,seqn: 04,len: 5,opcode: 0000,params: [02 33 02], check_sum: C0
    2023-11-08 15:35:32,369 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-11-08 15:35:32,369 INFO: Parser eventParser: event_id: [02 33]
    2023-11-08 15:35:32,369 INFO: Parser eventParser: status: [02]
    
  4. ACI Host CLI test: Input route_out start.

    2023-11-08 15:36:03,687 INFO: input command: route_out start
    2023-11-08 15:36:03,687 INFO: Parser cmdParser: cmd opcode: 3306 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_START
    2023-11-08 15:36:03,688 INFO: Packet sendPacket: <<<send packet: AA 05 02 00 06 33 C0
    2023-11-08 15:36:03,834 INFO: AciHostCLI continuously_read: >>>receive packet: AA 05 05 00 00 00 06 33 02 BB
    2023-11-08 15:36:03,835 INFO: Parser eventParser: syncWord: AA,seqn: 05,len: 5,opcode: 0000,params: [06 33 02], check_sum: BB
    2023-11-08 15:36:03,835 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-11-08 15:36:03,835 INFO: Parser eventParser: event_id: [06 33]
    2023-11-08 15:36:03,835 INFO: Parser eventParser: status: [02]
    
  5. ACI Host CLI test: Input route_in start.

    2023-11-08 15:36:52,159 INFO: input command: route_in start
    2023-11-08 15:36:52,159 INFO: Parser cmdParser: cmd opcode: 3304 param: [] name: CMD_SRC_PLAY_ROUTE_IN_START
    2023-11-08 15:36:52,160 INFO: Packet sendPacket: <<<send packet: AA 01 02 00 04 33 C6
    2023-11-08 15:36:52,165 INFO: AciHostCLI continuously_read: >>>receive packet: AA 06 05 00 00 00 04 33 02 BC
    2023-11-08 15:36:52,166 INFO: Parser eventParser: syncWord: AA,seqn: 06,len: 5,opcode: 0000,params: [04 33 02], check_sum: BC
    2023-11-08 15:36:52,169 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-11-08 15:36:52,171 INFO: Parser eventParser: event_id: [04 33]
    2023-11-08 15:36:52,171 INFO: Parser eventParser: status: [02]
    
  6. ACI Host CLI test: Input route_out stop.

    2023-11-08 15:37:08,533 INFO: input command: route_out stop
    2023-11-08 15:37:08,534 INFO: Parser cmdParser: cmd opcode: 3307 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_STOP
    2023-11-08 15:37:08,534 INFO: Packet sendPacket: <<<send packet: AA 03 02 00 07 33 C1
    2023-11-08 15:37:08,542 INFO: AciHostCLI continuously_read: >>>receive packet: AA 08 05 00 00 00 07 33 02 B7
    2023-11-08 15:37:08,543 INFO: Parser eventParser: syncWord: AA,seqn: 08,len: 5,opcode: 0000,params: [07 33 02], check_sum: B7
    2023-11-08 15:37:08,544 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-11-08 15:37:08,544 INFO: Parser eventParser: event_id: [07 33]
    2023-11-08 15:37:08,544 INFO: Parser eventParser: status: [02]
    
  7. ACI Host CLI test: Input route_in stop.

    2023-11-08 15:37:23,015 INFO: input command: route_in stop
    2023-11-08 15:37:23,015 INFO: Parser cmdParser: cmd opcode: 3305 param: [] name: CMD_SRC_PLAY_ROUTE_IN_STOP
    2023-11-08 15:37:23,015 INFO: Packet sendPacket: <<<send packet: AA 05 02 00 05 33 C1
    2023-11-08 15:37:23,023 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0A 05 00 00 00 05 33 02 B7
    2023-11-08 15:37:23,028 INFO: Parser eventParser: syncWord: AA,seqn: 0A,len: 5,opcode: 0000,params: [05 33 02], check_sum: B7
    2023-11-08 15:37:23,029 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-11-08 15:37:23,030 INFO: Parser eventParser: event_id: [05 33]
    2023-11-08 15:37:23,030 INFO: Parser eventParser: status: [02]
    
SD Card Source Play (BIS/CIS Output)

Before using, please make preparations as described in SD Card Source Play. The music data could be sent to the BUD(s) through BIS.

Note

DSP bin under release bin\DSP_Image\cs_leaaudio_pipe_stereo should be downloaded.

After SD card is inserted, the SD card source play can be started. SD card source play process:

../../../_images/bt_audio_trx_sd_card_src_play_bis.png

SD Card Source Play (BIS/CIS Output)

ACI Host CLI Test: SD Card Source Play (BIS/CIS Output)

When using BIS as output path, it is necessary to initialize BIS firstly through CMD_LEA_BSRC_INIT. The ACI Host sends CMD_SRC_PLAY_SET_SRC_ROUTE to ACI Device to set the SD card input route, sends CMD_SRC_PLAY_SET_PLAY_ROUTE to set BIS/CIS output route, sends CMD_SRC_PLAY_ROUTE_IN_START/STOP to start or stop the SD card input route, and sends CMD_SRC_PLAY_ROUTE_OUT_START/STOP to start or stop the BIS output route.

ACI Host CLI CMD for SD Card Source Play (BIS/CIS Output)

Command

Parameters

ACI Host CLI CMD

CMD_LEA_BSRC_INIT(0x3020)

codec type = CODEC_CFG_ITEM_48_4(48k) BIS num = 2 encryption = false ull_mode = false pd = 0x2710

bsrcinit 48k_2bis

CMD_SRC_PLAY_SET_SRC_ROUTE(0x3300)

action = sd_card(0x04, 0x00)

set_route_in sd_card

CMD_SRC_PLAY_SET_PLAY_ROUTE(0x3302)

action = bis(0x03)

set_route_out bis

CMD_SRC_PLAY_SET_PLAY_ROUTE(0x3302)

action = cis(0x04)

set_route_out cis

CMD_SRC_PLAY_ROUTE_IN_START(0x3304)

None

route_in start

CMD_SRC_PLAY_ROUTE_IN_STOP(0x3305)

None

route_in stop

CMD_SRC_PLAY_ROUTE_OUT_START(0x3306)

None

route_out start

CMD_SRC_PLAY_ROUTE_OUT_STOP(0x3307)

None

route_out stop

For CIS, it is necessary to establish an LE link. Please refer to Initiator General ACI Host CLI Test for connection procedure.

  1. ACI Host CLI test: Insert SD card to EVB.

  2. ACI Host CLI test: Initialize BIS.

    2023-11-09 11:27:18,506 INFO: input command: bsrcinit 48k_2bis
    2023-11-09 11:27:18,507 INFO: Parser cmdParser: cmd opcode: 3020 param: [0B 02 00 00 10 27] name: CMD_LEA_BSRC_INIT
    2023-11-09 11:27:18,507 INFO: Packet sendPacket: <<<send packet: AA 02 08 00 20 30 0B 02 00 00 10 27 62
    2023-11-09 11:27:18,585 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0C 05 00 00 00 20 30 00 9F
    2023-11-09 11:27:18,585 INFO: Parser eventParser: syncWord: AA,seqn: 0C,len: 5,opcode: 0000,params: [20 30 00], check_sum: 9F
    2023-11-09 11:27:18,586 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-11-09 11:27:18,586 INFO: Parser eventParser: event_id: [20 30]
    2023-11-09 11:27:18,586 INFO: Parser eventParser: status: [00]
    
  3. ACI Host CLI test: Input set_route_out bis/cis.

    If choose BIS:

    2023-11-09 11:28:14,714 INFO: input command: set_route_out bis
    2023-11-09 11:28:14,715 INFO: Parser cmdParser: cmd opcode: 3302 param: [03] name: CMD_SRC_PLAY_SET_PLAY_ROUTE
    2023-11-09 11:28:14,715 INFO: Packet sendPacket: <<<send packet: AA 03 03 00 02 33 03 C2
    2023-11-09 11:28:14,725 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0D 05 00 00 00 02 33 02 B7
    2023-11-09 11:28:14,727 INFO: Parser eventParser: syncWord: AA,seqn: 0D,len: 5,opcode: 0000,params: [02 33 02], check_sum: B7
    2023-11-09 11:28:14,727 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-11-09 11:28:14,727 INFO: Parser eventParser: event_id: [02 33]
    2023-11-09 11:28:14,727 INFO: Parser eventParser: status: [02]
    

    If choose CIS:

    2023-11-10 10:27:00,869 INFO: input command: set_route_out cis
    2023-11-10 10:27:00,870 INFO: Parser cmdParser: cmd opcode: 3302 param: [04] name: CMD_SRC_PLAY_SET_PLAY_ROUTE
    2023-11-10 10:27:00,870 INFO: Packet sendPacket: <<<send packet: AA 0F 03 00 02 33 04 B5
    2023-11-10 10:27:00,876 INFO: AciHostCLI continuously_read: >>>receive packet: AA 19 05 00 00 00 02 33 02 AB
    2023-11-10 10:27:00,876 INFO: Parser eventParser: syncWord: AA,seqn: 19,len: 5,opcode: 0000,params: [02 33 02], check_sum: AB
    2023-11-10 10:27:00,876 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-11-10 10:27:00,877 INFO: Parser eventParser: event_id: [02 33]
    2023-11-10 10:27:00,879 INFO: Parser eventParser: status: [02]
    
  4. ACI Host CLI test: Input set_route_in sd_card.

    2023-11-09 11:28:32,673 INFO: input command: set_route_in sd_card
    2023-11-09 11:28:32,674 INFO: Parser cmdParser: cmd opcode: 3300 param: [04 00] name: CMD_SRC_PLAY_SET_SRC_ROUTE
    2023-11-09 11:28:32,676 INFO: Packet sendPacket: <<<send packet: AA 05 04 00 00 33 04 00 C0
    2023-11-09 11:28:32,751 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0F 05 00 00 00 00 33 02 B7
    2023-11-09 11:28:32,751 INFO: Parser eventParser: syncWord: AA,seqn: 0F,len: 5,opcode: 0000,params: [00 33 02], check_sum: B7
    2023-11-09 11:28:32,751 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-11-09 11:28:32,751 INFO: Parser eventParser: event_id: [00 33]
    2023-11-09 11:28:32,752 INFO: Parser eventParser: status: [02]
    
  5. ACI Host CLI test: Input route_out start.

    2023-11-09 11:28:51,593 INFO: input command: route_out start
    2023-11-09 11:28:51,594 INFO: Parser cmdParser: cmd opcode: 3306 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_START
    2023-11-09 11:28:51,594 INFO: Packet sendPacket: <<<send packet: AA 07 02 00 06 33 BE
    2023-11-09 11:28:51,607 INFO: AciHostCLI continuously_read: >>>receive packet: AA 11 05 00 00 00 06 33 02 AF
    2023-11-09 11:28:51,608 INFO: Parser eventParser: syncWord: AA,seqn: 11,len: 5,opcode: 0000,params: [06 33 02], check_sum: AF
    2023-11-09 11:28:51,608 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-11-09 11:28:51,608 INFO: Parser eventParser: event_id: [06 33]
    2023-11-09 11:28:51,608 INFO: Parser eventParser: status: [02]
    
  6. ACI Host CLI test: Input route_in start.

    2023-11-09 11:29:17,530 INFO: input command: route_in start
    2023-11-09 11:29:17,530 INFO: Parser cmdParser: cmd opcode: 3304 param: [] name: CMD_SRC_PLAY_ROUTE_IN_START
    2023-11-09 11:29:17,531 INFO: Packet sendPacket: <<<send packet: AA 09 02 00 04 33 BE
    2023-11-09 11:29:17,545 INFO: AciHostCLI continuously_read: >>>receive packet: AA 13 05 00 00 00 04 33 02 AF
    2023-11-09 11:29:17,545 INFO: Parser eventParser: syncWord: AA,seqn: 13,len: 5,opcode: 0000,params: [04 33 02], check_sum: AF
    2023-11-09 11:29:17,545 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-11-09 11:29:17,545 INFO: Parser eventParser: event_id: [04 33]
    2023-11-09 11:29:17,546 INFO: Parser eventParser: status: [02]
    
  7. ACI Host CLI test: Input route_out stop.

    2023-11-09 11:29:45,331 INFO: input command: route_out stop
    2023-11-09 11:29:45,332 INFO: Parser cmdParser: cmd opcode: 3307 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_STOP
    2023-11-09 11:29:45,332 INFO: Packet sendPacket: <<<send packet: AA 0B 02 00 07 33 B9
    2023-11-09 11:29:45,338 INFO: AciHostCLI continuously_read: >>>receive packet: AA 15 05 00 00 00 07 33 02 AA
    2023-11-09 11:29:45,343 INFO: Parser eventParser: syncWord: AA,seqn: 15,len: 5,opcode: 0000,params: [07 33 02], check_sum: AA
    2023-11-09 11:29:45,343 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-11-09 11:29:45,344 INFO: Parser eventParser: event_id: [07 33]
    2023-11-09 11:29:45,346 INFO: Parser eventParser: status: [02]
    
  8. ACI Host CLI test: Input route_in stop.

    2023-11-09 11:29:56,073 INFO: input command: route_in stop
    2023-11-09 11:29:56,074 INFO: Parser cmdParser: cmd opcode: 3305 param: [] name: CMD_SRC_PLAY_ROUTE_IN_STOP
    2023-11-09 11:29:56,074 INFO: Packet sendPacket: <<<send packet: AA 0D 02 00 05 33 B9
    2023-11-09 11:29:56,115 INFO: AciHostCLI continuously_read: >>>receive packet: AA 17 05 00 00 00 05 33 02 AA
    2023-11-09 11:29:56,116 INFO: Parser eventParser: syncWord: AA,seqn: 17,len: 5,opcode: 0000,params: [05 33 02], check_sum: AA
    2023-11-09 11:29:56,116 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-11-09 11:29:56,118 INFO: Parser eventParser: event_id: [05 33]
    2023-11-09 11:29:56,118 INFO: Parser eventParser: status: [02]
    
Attach Feature to Source Play

The source play interface, in addition to providing basic audio stream configuration, also supports the attachment of additional features. Currently supported features include:

  • NREC: Noise reduction algorithm for audio recording.

  • Append LOCAL PLAY: Simultaneous play through the local speaker alongside the basic audio stream.

The CMD_SRC_PLAY_ATTACH_FEATURE command is used to configure the required features. Different features have different usage scenarios, and not all combinations of source routes and play routes support all features. Therefore, users must first configure the source route and play route before attaching the desired features. Additionally, the attachment of features must be completed before initiating CMD_SRC_PLAY_ROUTE_OUT_START or CMD_SRC_PLAY_ROUTE_IN_START.

Additionally, users can use the CMD_SRC_PLAY_DETACH_FEATURE command to disable any previously configured features. This command shall be executed before initiating CMD_SRC_PLAY_ROUTE_OUT_START or CMD_SRC_PLAY_ROUTE_IN_START.

  1. Scenarios for NREC The supported scenarios for NREC are as follows.

    Scenarios for NREC

    Route in (Source Route)

    Route out (Play Route)

    MIC

    CIS

    MIC

    BIS

    MIC

    HFP_AG

    Note

    The NREC algorithm only supports 16k and 32k sampling rates. Therefore, when NREC is attached, users shall ensure that BIS is initiated to 16k, while CIS will preferentially use 16k by default.

  2. Scenarios for Append LOCAL PLAY The supported scenarios for NREC are as follows.

    Scenarios for Append LOCAL PLAY

    Route in (Source Route)

    Route out (Play Route)

    MIC

    A2DP

    MIC

    HFP_AG

    MIC

    BIS

    MIC

    CIS

    Line-in

    A2DP

    Line-in

    HFP_AG

    Line-in

    BIS

    Line-in

    CIS

    SPDIF

    A2DP

    SPDIF

    HFP_AG

    SPDIF

    BIS

    SPDIF

    CIS

    I2S

    A2DP

    I2S

    HFP_AG

    I2S

    BIS

    I2S

    CIS

Attach feature process:

../../../_images/bt_audio_trx_attach_src_play.png

Attach Feature

ACI Host CLI Test: Attach Feature to Source Play

For example, set the source route to MIC, the play route to A2DP, and attach Append LOCAL PLAY.

ACI Host CLI CMD for Attach Source Play

Command

Parameters

ACI Host CLI CMD

CMD_SRC_PLAY_SET_SRC_ROUTE(0x3300)

action = mic(0x01, 0x00)

set_route_in mic

CMD_SRC_PLAY_SET_PLAY_ROUTE(0x3302)

action = A2DP(0x01)

set_route_out a2dp

CMD_SRC_PLAY_ATTACH_FEATURE(0x3312)

action = localplay(0x02, 0x00)

attach_feature localplay

CMD_SRC_PLAY_ATTACH_FEATURE(0x3313)

action = localplay(0x02, 0x00)

detach_feature localplay

CMD_SRC_PLAY_ROUTE_IN_START(0x3304)

None

route_in start

CMD_SRC_PLAY_ROUTE_IN_STOP(0x3305)

None

route_in stop

CMD_SRC_PLAY_ROUTE_OUT_START(0x3306)

None

route_out start

CMD_SRC_PLAY_ROUTE_OUT_STOP(0x3307)

None

route_out stop

  1. ACI Host CLI test: Connect ACI Device to BUD.

    Please refer to Connect to BUD.

  2. ACI Host CLI test: Input set route_in mic.

    2024-11-11 14:14:25,431 INFO: input command: set_route_in mic
    2024-11-11 14:14:25,432 INFO: Parser cmdParser: cmd opcode: 3300 param: [01 01] name: CMD_SRC_PLAY_SET_SRC_ROUTE
    2024-11-11 14:14:25,434 INFO: Packet sendPacket: <<<send packet: AA 2A 04 00 00 33 01 01 9D
    2024-11-11 14:14:25,506 WARNING: AciHostCLI retrans: retransmit command set_route_in mic due to ack timeout! retry: 1
    2024-11-11 14:14:25,507 INFO: Packet sendPacket: <<<send packet: AA 2A 04 00 00 33 01 01 9D
    2024-11-11 14:14:25,519 INFO: AciHostCLI continuously_read: >>>receive packet: AA 24 05 00 00 00 00 33 00 A4
    2024-11-11 14:14:25,519 INFO: Parser eventParser: syncWord: AA,seqn: 24,len: 5,opcode: 0000,params: [00 33 00], check_sum: A4
    2024-11-11 14:14:25,520 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-11-11 14:14:25,520 INFO: Parser eventParser: event_id: [00 33]
    2024-11-11 14:14:25,521 INFO: Parser eventParser: status: [00]
    
  3. ACI Host CLI test: Input set route_out a2dp.

    2024-11-11 14:14:32,537 INFO: input command: set_route_out a2dp
    2024-11-11 14:14:32,538 INFO: Parser cmdParser: cmd opcode: 3302 param: [01] name: CMD_SRC_PLAY_SET_PLAY_ROUTE
    2024-11-11 14:14:32,538 INFO: Packet sendPacket: <<<send packet: AA 2B 03 00 02 33 01 9C
    2024-11-11 14:14:32,993 INFO: AciHostCLI continuously_read: >>>receive packet: AA 25 05 00 00 00 02 33 00 A1
    2024-11-11 14:14:32,994 INFO: Parser eventParser: syncWord: AA,seqn: 25,len: 5,opcode: 0000,params: [02 33 00], check_sum: A1
    2024-11-11 14:14:32,995 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-11-11 14:14:32,995 INFO: Parser eventParser: event_id: [02 33]
    2024-11-11 14:14:32,997 INFO: Parser eventParser: status: [00]
    
  4. ACI Host CLI test: Input attach_feature localplay.

    2024-11-11 14:14:37,018 INFO: input command: attach_feature localplay
    2024-11-11 14:14:37,019 INFO: Parser cmdParser: cmd opcode: 3312 param: [02] name: CMD_SRC_PLAY_ATTACH_FEATURE
    2024-11-11 14:14:37,019 INFO: Packet sendPacket: <<<send packet: AA 2C 03 00 12 33 02 8A
    2024-11-11 14:14:37,035 INFO: AciHostCLI continuously_read: >>>receive packet: AA 26 05 00 00 00 12 33 00 90
    2024-11-11 14:14:37,035 INFO: Parser eventParser: syncWord: AA,seqn: 26,len: 5,opcode: 0000,params: [12 33 00], check_sum: 90
    2024-11-11 14:14:37,036 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-11-11 14:14:37,036 INFO: Parser eventParser: event_id: [12 33]
    2024-11-11 14:14:37,036 INFO: Parser eventParser: status: [00]
    
  5. ACI Host CLI test: Input route_out start.

    2024-11-11 14:14:40,359 INFO: input command: route_out start
    2024-11-11 14:14:40,360 INFO: Parser cmdParser: cmd opcode: 3306 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_START
    2024-11-11 14:14:40,360 INFO: Packet sendPacket: <<<send packet: AA 2D 02 00 06 33 98
    2024-11-11 14:14:40,532 INFO: AciHostCLI continuously_read: >>>receive packet: AA 27 05 00 00 00 06 33 00 9B
    2024-11-11 14:14:40,533 INFO: Parser eventParser: syncWord: AA,seqn: 27,len: 5,opcode: 0000,params: [06 33 00], check_sum: 9B
    2024-11-11 14:14:40,533 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-11-11 14:14:40,534 INFO: Parser eventParser: event_id: [06 33]
    2024-11-11 14:14:40,534 INFO: Parser eventParser: status: [00]
    
  6. ACI Host CLI test: Input route_in start, and music can be heard from both remote buds and local speaker.

    2024-11-11 14:14:45,532 INFO: input command: route_in start
    2024-11-11 14:14:45,533 INFO: Parser cmdParser: cmd opcode: 3304 param: [] name: CMD_SRC_PLAY_ROUTE_IN_START
    2024-11-11 14:14:45,533 INFO: Packet sendPacket: <<<send packet: AA 2E 02 00 04 33 99
    2024-11-11 14:14:45,628 INFO: AciHostCLI continuously_read: >>>receive packet: AA 28 05 00 00 00 04 33 00 9C
    2024-11-11 14:14:45,629 INFO: Parser eventParser: syncWord: AA,seqn: 28,len: 5,opcode: 0000,params: [04 33 00], check_sum: 9C
    2024-11-11 14:14:45,629 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-11-11 14:14:45,630 INFO: Parser eventParser: event_id: [04 33]
    2024-11-11 14:14:45,630 INFO: Parser eventParser: status: [00]
    
  7. ACI Host CLI test: Input route_out stop.

    2024-11-11 14:15:26,933 INFO: input command: route_out stop
    2024-11-11 14:15:26,934 INFO: Parser cmdParser: cmd opcode: 3307 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_STOP
    2024-11-11 14:15:26,935 INFO: Packet sendPacket: <<<send packet: AA 2F 02 00 07 33 95
    2024-11-11 14:15:26,952 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2A 05 00 00 00 07 33 00 97
    2024-11-11 14:15:26,954 INFO: Parser eventParser: syncWord: AA,seqn: 2A,len: 5,opcode: 0000,params: [07 33 00], check_sum: 97
    2024-11-11 14:15:26,955 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-11-11 14:15:26,955 INFO: Parser eventParser: event_id: [07 33]
    2024-11-11 14:15:26,956 INFO: Parser eventParser: status: [00]
    
  8. ACI Host CLI test: Input route_in stop.

    2024-11-11 14:15:30,255 INFO: input command: route_in stop
    2024-11-11 14:15:30,256 INFO: Parser cmdParser: cmd opcode: 3305 param: [] name: CMD_SRC_PLAY_ROUTE_IN_STOP
    2024-11-11 14:15:30,258 INFO: Packet sendPacket: <<<send packet: AA 30 02 00 05 33 96
    2024-11-11 14:15:30,276 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2B 05 00 00 00 05 33 00 98
    2024-11-11 14:15:30,277 INFO: Parser eventParser: syncWord: AA,seqn: 2B,len: 5,opcode: 0000,params: [05 33 00], check_sum: 98
    2024-11-11 14:15:30,278 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-11-11 14:15:30,279 INFO: Parser eventParser: event_id: [05 33]
    2024-11-11 14:15:30,280 INFO: Parser eventParser: status: [00]
    
  9. ACI Host CLI test: Input dettach_feature localplay.

    2024-11-11 14:15:35,662 INFO: input command: detach_feature localplay
    2024-11-11 14:15:35,663 INFO: Parser cmdParser: cmd opcode: 3313 param: [02] name: CMD_SRC_PLAY_DETACH_FEATURE
    2024-11-11 14:15:35,663 INFO: Packet sendPacket: <<<send packet: AA 31 03 00 13 33 02 84
    2024-11-11 14:15:35,675 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2C 05 00 00 00 13 33 00 89
    2024-11-11 14:15:35,677 INFO: Parser eventParser: syncWord: AA,seqn: 2C,len: 5,opcode: 0000,params: [13 33 00], check_sum: 89
    2024-11-11 14:15:35,677 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-11-11 14:15:35,678 INFO: Parser eventParser: event_id: [13 33]
    2024-11-11 14:15:35,678 INFO: Parser eventParser: status: [00]
    
  10. ACI Host CLI test: Input route_out start.

2024-11-11 14:15:40,286 INFO: input command: route_out start
2024-11-11 14:15:40,287 INFO: Parser cmdParser: cmd opcode: 3306 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_START
2024-11-11 14:15:40,288 INFO: Packet sendPacket: <<<send packet: AA 32 02 00 06 33 93
2024-11-11 14:15:40,306 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2D 05 00 00 00 06 33 00 95
2024-11-11 14:15:40,309 INFO: Parser eventParser: syncWord: AA,seqn: 2D,len: 5,opcode: 0000,params: [06 33 00], check_sum: 95
2024-11-11 14:15:40,309 INFO: Parser eventParser: event name: APP_EVENT_ACK
2024-11-11 14:15:40,310 INFO: Parser eventParser: event_id: [06 33]
2024-11-11 14:15:40,310 INFO: Parser eventParser: status: [00]
  1. ACI Host CLI test: Input route_in start.

2024-11-11 14:15:43,878 INFO: input command: route_in start
2024-11-11 14:15:43,879 INFO: Parser cmdParser: cmd opcode: 3304 param: [] name: CMD_SRC_PLAY_ROUTE_IN_START
2024-11-11 14:15:43,880 INFO: Packet sendPacket: <<<send packet: AA 33 02 00 04 33 94
2024-11-11 14:15:43,932 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2E 05 00 00 00 04 33 00 96
2024-11-11 14:15:43,933 INFO: Parser eventParser: syncWord: AA,seqn: 2E,len: 5,opcode: 0000,params: [04 33 00], check_sum: 96
2024-11-11 14:15:43,933 INFO: Parser eventParser: event name: APP_EVENT_ACK
2024-11-11 14:15:43,934 INFO: Parser eventParser: event_id: [04 33]
2024-11-11 14:15:43,935 INFO: Parser eventParser: status: [00]

Bluetooth Audio Receiver

This chapter introduces the functionality of the bt_audio_receiver application scenario. This functionality is enabled by opening the macro definition F_APP_BT_AUDIO_RECEIVER_DEMO_SUPPORT in app_flags.h. This chapter describes how to use these functions and the flow of how to test them, including the MSCs of the ACI Device and ACI Host interaction, and the commands used by ACI Host CLI Tool.

HFP Function

../../../_images/bt_audio_trx_hfp_seq.png

HFP

ACI Host CLI Test: HFP Function
ACI Host CLI CMD for HFP

Command

Parameters

ACI Host CLI CMD

Description

CMD_MMI = 0x0004

action = MMI_HF_ANSWER_CALL(0x0003)

mmi answer

Answer an incoming call.

CMD_MMI = 0x0004

action = MMI_HF_REJECT_CALL(0x0004)

mmi reject

Reject an incoming call.

CMD_BT_HFP_DIAL_WITH_NUMBER = 0x001B

number = {…}

call 10086

HFP dial with number 10086.

MAP Function

Based on the scenario introduced in Connect to Phone, MAP can be used to combine the messaging capabilities of a messaging server device and the user interface capabilities of a client device for browsing, reading, and sending messages.

Before using the MAP function, it is necessary to enable Message access on Android devices, and enable Show Notifications on iOS devices.

../../../_images/bt_audio_trx_map_before_use.png

MAP before Use

MAP process:

../../../_images/bt_audio_trx_map.png

MAP

../../../_images/bt_audio_trx_map_get_handle.png

MAP Get Handle

As introduced in the figure, after the MAP connection is established, the device will set a folder to root\telecom\msg. The parameters of CMD_MAP_GET_MESSAGE need to be set according to the handle value of the specific message in the message list.

ACI Host CLI Test: MAP Function

The ACI Host uses CMD_MAP_CONNECT with a status parameter to the ACI Device to establish a MAP connection, uses CMD_MAP_GET_FOLDER_LISTING, CMD_MAP_GET_MESSAGE_LISTING, and CMD_MAP_GET_MESSAGE to get folders and messages, and uses CMD_MAP_REG_MSG_NOTIFICATION to register message notifications.

ACI Host CLI CMD for MAP

Command

Parameters

ACI Host CLI CMD

CMD_MAP_CONNECT(0x3801)

action = map_connect

map connect

CMD_MAP_GET_FOLDER_LISTING(0x3802)

action = get_folder_list(0x0A)

map get folder list

CMD_MAP_DISCONNECT(0x3803)

action = map_disconnect

map disconnect

CMD_MAP_GET_MESSAGE_LISTING(0x3805)

action = get_msg_list(0x0A)

map get msg list

CMD_MAP_REG_MSG_NOTIFICATION(0x3809)

action = reg_msg_note(0x01)

map reg msg note

CMD_MAP_GET_MESSAGE(0x380A)

action = get_msg(handle_length, handle)

map get msg

CMD_MAP_PUSH_MESSAGE(0x3810)

action = push_msg(msg_length, msg)

map push msg

  1. ACI Host CLI test: Connect ACI Device to Phone.

    Please refer to Connect to Phone.

  2. ACI Host CLI test: MAP connect.

    2023-03-08 14:40:07,573 INFO: input command: map connect
    2023-03-08 14:40:07,574 INFO: Parser cmdParser: cmd opcode: 3801 param: [] name: CMD_MAP_CONNECT
    2023-03-08 14:40:07,575 INFO: Packet sendPacket: <<<send packet: AA 1B 02 00 01 38 AA
    2023-03-08 14:40:07,579 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1B 05 00 00 00 01 38 00 A7
    2023-03-08 14:40:07,579 INFO: Parser eventParser: syncWord: AA,seqn: 1B,len: 5,opcode: 0000,params: [01 38 00], check_sum: A7
    2023-03-08 14:40:07,580 INFO: Parser eventParser: event name: EVENT_ACK
    2023-03-08 14:40:07,580 INFO: Parser eventParser: event_id: [01 38]
    2023-03-08 14:40:07,580 INFO: Parser eventParser: status: [00]
    2023-03-08 14:40:07,804 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1C 09 00 24 09 00 41 AF 7B 6C 32 20 85
    2023-03-08 14:40:07,804 INFO: Parser eventParser: syncWord: AA,seqn: 1C,len: 9,opcode: 0924,params: [00 41 AF 7B 6C 32 20], check_sum: 85
    2023-03-08 14:40:07,806 INFO: Parser eventParser: event name: EVENT_SERVICES_SEARCH_STATE
    2023-03-08 14:40:07,807 INFO: Packet sendPacket: <<<send packet: AA 1C 05 00 00 00 24 09 00 B2
    
  3. ACI Host CLI test: MAP get folder list.

    2023-03-08 14:40:32,790 INFO: input command: map get_folder_list
    2023-03-08 14:40:32,791 INFO: Parser cmdParser: cmd opcode: 3802 param: [0A 00] name: CMD_MAP_GET_FOLDER_LISTING
    2023-03-08 14:40:32,792 INFO: Packet sendPacket: <<<send packet: AA 1D 04 00 02 38 0A 00 9B
    2023-03-08 14:40:32,803 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1D 05 00 00 00 02 38 00 A4
    2023-03-08 14:40:32,804 INFO: Parser eventParser: syncWord: AA,seqn: 1D,len: 5,opcode: 0000,params: [02 38 00], check_sum: A4
    2023-03-08 14:40:32,804 INFO: Parser eventParser: event name: EVENT_ACK
    2023-03-08 14:40:32,804 INFO: Parser eventParser: event_id: [02 38]
    2023-03-08 14:40:32,805 INFO: Parser eventParser: status: [00]
    2023-03-08 14:40:33,208 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1E FA 00 04 38 3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D 27 31 2E 30 27 20 65 6E 63 6F 64 69
    2023-03-08 14:40:33,209 INFO: Parser eventParser: syncWord: AA,seqn: 1E,len: 250,opcode: 3804,params: [3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D 27 31 2E 30 27 20 65 6E 63 6F 64 69 6E 67 3D 27 75 74], check_sum: C3
    2023-03-08 14:40:33,210 INFO: Packet sendPacket: <<<send packet: AA 1E 05 00 00 00 04 38 00 A1
    
  4. ACI Host CLI test: MAP get message list.

    2023-03-08 14:41:04,092 INFO: input command: map get_msg_list
    2023-03-08 14:41:04,093 INFO: Parser cmdParser: cmd opcode: 3805 param: [0A 00] name: CMD_MAP_GET_MESSAGE_LISTING
    2023-03-08 14:41:04,095 INFO: Packet sendPacket: <<<send packet: AA 1F 04 00 05 38 0A 00 96
    2023-03-08 14:41:04,108 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1F 05 00 00 00 05 38 00 9F
    2023-03-08 14:41:04,109 INFO: Parser eventParser: syncWord: AA,seqn: 1F,len: 5,opcode: 0000,params: [05 38 00], check_sum: 9F
    2023-03-08 14:41:04,109 INFO: Parser eventParser: event name: EVENT_ACK
    2023-03-08 14:41:04,109 INFO: Parser eventParser: event_id: [05 38]
    2023-03-08 14:41:04,110 INFO: Parser eventParser: status: [00]
    2023-03-08 14:41:05,232 INFO: AciHostCLI continuously_read: >>>receive packet: AA 20 CA 03 06 38 3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D 27 31 2E 30 27 20 65 6E 63 6F 64 69
    2023-03-08 14:41:05,232 INFO: Parser eventParser: syncWord: AA,seqn: 20,len: 970,opcode: 3806,params: [3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D 27 31 2E 30 27 20 65 6E 63 6F 64 69 6E 67 3D 27 75 74], check_sum: 6B
    2023-03-08 14:41:05,234 INFO: Packet sendPacket: <<<send packet: AA 20 05 00 00 00 06 38 00 9D
    2023-03-08 14:41:05,267 INFO: AciHostCLI continuously_read: >>>receive packet: AA 21 CA 03 06 38 31 34 36 31 32 22 20 73 65 6E 64 65 72 5F 61 64 64 72 65 73 73 69 6E 67 3D 22
    2023-03-08 14:41:05,268 INFO: Parser eventParser: syncWord: AA,seqn: 21,len: 970,opcode: 3806,params: [31 34 36 31 32 22 20 73 65 6E 64 65 72 5F 61 64 64 72 65 73 73 69 6E 67 3D 22 31 30 36 35 39 31], check_sum: 3E
    2023-03-08 14:41:05,269 INFO: Packet sendPacket: <<<send packet: AA 21 05 00 00 00 06 38 00 9C
    2023-03-08 14:41:05,378 INFO: AciHostCLI continuously_read: >>>receive packet: AA 22 CA 03 06 38 3D 22 6E 6F 22 20 70 72 6F 74 65 63 74 65 64 3D 22 6E 6F 22 20 2F 3E 0A 20 20
    2023-03-08 14:41:05,379 INFO: Parser eventParser: syncWord: AA,seqn: 22,len: 970,opcode: 3806,params: [3D 22 6E 6F 22 20 70 72 6F 74 65 63 74 65 64 3D 22 6E 6F 22 20 2F 3E 0A 20 20 20 20 3C 6D 73 67], check_sum: D5
    2023-03-08 14:41:05,381 INFO: Packet sendPacket: <<<send packet: AA 22 05 00 00 00 06 38 00 9B
    2023-03-08 14:41:05,401 INFO: AciHostCLI continuously_read: >>>receive packet: AA 23 B6 03 07 38 65 6E 64 65 72 5F 61 64 64 72 65 73 73 69 6E 67 3D 22 31 30 36 35 39 33 31 31
    2023-03-08 14:41:05,403 INFO: Parser eventParser: syncWord: AA,seqn: 23,len: 950,opcode: 3807,params: [65 6E 64 65 72 5F 61 64 64 72 65 73 73 69 6E 67 3D 22 31 30 36 35 39 33 31 31 31 33 22 20 72 65], check_sum: 10
    2023-03-08 14:41:05,405 INFO: Packet sendPacket: <<<send packet: AA 23 05 00 00 00 07 38 00 99
    
  5. ACI Host CLI test: MAP get message.

    2023-03-08 14:41:34,092 INFO: input command: map get_msg
    2023-03-08 14:41:34,093 INFO: Parser cmdParser: cmd opcode: 380A param: [22 00 30 00 30 00 34 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 42 00] name: CMD_MAP_GET_MESSAGE
    2023-03-08 14:41:34,093 INFO: Packet sendPacket: <<<send packet: AA 24 24 00 0A 38 22 00 30 00 30 00 34 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00 30 00
    2023-03-08 14:41:34,107 INFO: AciHostCLI continuously_read: >>>receive packet: AA 24 05 00 00 00 0A 38 00 95
    2023-03-08 14:41:34,108 INFO: Parser eventParser: syncWord: AA,seqn: 24,len: 5,opcode: 0000,params: [0A 38 00], check_sum: 95
    2023-03-08 14:41:34,108 INFO: Parser eventParser: event name: EVENT_ACK
    2023-03-08 14:41:34,108 INFO: Parser eventParser: event_id: [0A 38]
    2023-03-08 14:41:34,108 INFO: Parser eventParser: status: [00]
    2023-03-08 14:41:34,460 INFO: AciHostCLI continuously_read: >>>receive packet: AA 25 1B 01 0C 38 42 45 47 49 4E 3A 42 4D 53 47 0D 0A 56 45 52 53 49 4F 4E 3A 31 2E 30 0D 0A 53
    2023-03-08 14:41:34,460 INFO: Parser eventParser: syncWord: AA,seqn: 25,len: 283,opcode: 380C,params: [42 45 47 49 4E 3A 42 4D 53 47 0D 0A 56 45 52 53 49 4F 4E 3A 31 2E 30 0D 0A 53 54 41 54 55 53 3A], check_sum: 62
    2023-03-08 14:41:34,461 INFO: Packet sendPacket: <<<send packet: AA 25 05 00 00 00 0C 38 00 92
    
  6. ACI Host CLI test: MAP register notification.

    2023-03-08 14:43:32,651 INFO: input command: map reg_msg_note
    2023-03-08 14:43:32,653 INFO: Parser cmdParser: cmd opcode: 3809 param: [01] name: CMD_MAP_REG_MSG_NOTIFICATION
    2023-03-08 14:43:32,654 INFO: Packet sendPacket: <<<send packet: AA 05 03 00 09 38 01 B6
    2023-03-08 14:43:32,672 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2A 05 00 00 00 09 38 00 90
    2023-03-08 14:43:32,673 INFO: Parser eventParser: syncWord: AA,seqn: 2A,len: 5,opcode: 0000,params: [09 38 00], check_sum: 90
    2023-03-08 14:43:32,673 INFO: Parser eventParser: event name: EVENT_ACK
    2023-03-08 14:43:32,674 INFO: Parser eventParser: event_id: [09 38]
    2023-03-08 14:43:32,674 INFO: Parser eventParser: status: [00]
    
  7. ACI Host CLI test: MAP push message.

    2023-03-08 14:42:49,284 INFO: input command: map push_msg
    2023-03-08 14:42:49,287 INFO: Parser cmdParser: cmd opcode: 3810 param: [F8 00 42 45 47 49 4E 3A 42 4D 53 47 0D 0A 56 45 52 53 49 4F 4E 3A 31 2E 30 0D 0A 53 54 41 54 55] name: CMD_MAP_PUSH_MESSAGE
    2023-03-08 14:42:49,289 INFO: Packet sendPacket: <<<send packet: AA 03 FC 00 10 38 F8 00 42 45 47 49 4E 3A 42 4D 53 47 0D 0A 56 45 52 53 49 4F 4E 3A 31 2E 30 0D
    2023-03-08 14:42:49,296 INFO: AciHostCLI continuously_read: >>>receive packet: AA 28 05 00 00 00 10 38 00 8B
    2023-03-08 14:42:49,296 INFO: Parser eventParser: syncWord: AA,seqn: 28,len: 5,opcode: 0000,params: [10 38 00], check_sum: 8B
    2023-03-08 14:42:49,296 INFO: Parser eventParser: event name: EVENT_ACK
    2023-03-08 14:42:49,297 INFO: Parser eventParser: event_id: [10 38]
    2023-03-08 14:42:49,297 INFO: Parser eventParser: status: [00]
    
  8. ACI Host CLI test: MAP disconnect.

    2023-03-08 19:15:22,350 INFO: input command: map disconnect
    2023-03-08 19:15:22,353 INFO: Parser cmdParser: cmd opcode: 3803 param: [] name: CMD_MAP_DISCONNECT
    2023-03-08 19:15:22,354 INFO: Packet sendPacket: <<<send packet: AA 39 02 00 03 38 8A
    2023-03-08 19:15:22,368 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2E 05 00 00 00 03 38 00 92
    2023-03-08 19:15:22,371 INFO: Parser eventParser: syncWord: AA,seqn: 2E,len: 5,opcode: 0000,params: [03 38 00], check_sum: 92
    2023-03-08 19:15:22,373 INFO: Parser eventParser: event name: EVENT_ACK
    2023-03-08 19:15:22,373 INFO: Parser eventParser: event_id: [03 38]
    2023-03-08 19:15:22,374 INFO: Parser eventParser: status: [00]
    

PBAP Function

Based on the scenario introduced in Connect to Phone, PBAP can be used to pull phone book objects and combined call history from the server device.

Before using the PBAP function, Android phones need to open Contact access, and iOS phones need to open Sync Contacts.

../../../_images/bt_audio_trx_pbap_before_use.png

PBAP before Use

PBAP process:

../../../_images/bt_audio_trx_pbap.png

PBAP

As introduced in the figure, after the PBAP connection is established, the device will set a folder to root\telecom\pb. The folder will be set to root\telecom\cch when the device uses CMD_PBAP_DOWNLOAD with download_cch action.

ACI Host CLI Test: PBAP Function
ACI Host CLI CMD for PBAP

Command

Parameters

ACI Host CLI CMD

CMD_PBAP_DOWNLOAD(0x0420)

action = download_all(0x03)

pbap download_all

CMD_PBAP_DOWNLOAD(0x0420)

action = download_PB(0x04)

pbap download_PB

CMD_PBAP_DOWNLOAD(0x0420)

action = download_cch(0x05)

pbap download_cch

CMD_PBAP_CONNECT(0x0423)

action = pbap_connect

pbap connect

CMD_PBAP_DISCONNECT(0x0426)

action = pbap_disconnect

pbap disconnect

The ACI Host uses CMD_PBAP_CONNECT to ACI Device to establish PBAP connection, and uses CMD_PBAP_DOWNLOAD to get phone book and call history.

  1. ACI Host CLI test: Connect ACI Device to Phone.

    Please refer to Connect to Phone.

  2. ACI Host CLI test: PBAP connect.

    2023-03-09 16:53:57,753 INFO: input command: pbap connect
    2023-03-09 16:53:57,753 INFO: Parser cmdParser: cmd opcode: 0423 param: [] name: CMD_PBAP_CONNECT
    2023-03-09 16:53:57,754 INFO: Packet sendPacket: <<<send packet: AA 44 02 00 23 04 83
    2023-03-09 16:53:57,762 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1E 05 00 00 00 23 04 00 A6
    2023-03-09 16:53:57,763 INFO: Parser eventParser: syncWord: AA,seqn: 1E,len: 5,opcode: 0000,params: [23 04 00], check_sum: A6
    2023-03-09 16:53:57,763 INFO: Parser eventParser: event name: EVENT_ACK
    2023-03-09 16:53:57,763 INFO: Parser eventParser: event_id: [23 04]
    2023-03-09 16:53:57,763 INFO: Parser eventParser: status: [00]
    2023-03-09 16:53:58,003 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1F 09 00 24 09 00 41 AF 7B 6C 32 20 82
    2023-03-09 16:53:58,003 INFO: Parser eventParser: syncWord: AA,seqn: 1F,len: 9,opcode: 0924,params: [00 41 AF 7B 6C 32 20], check_sum: 82
    2023-03-09 16:53:58,004 INFO: Parser eventParser: event name: EVENT_SERVICES_SEARCH_STATE
    2023-03-09 16:53:58,004 INFO: Packet sendPacket: <<<send packet: AA 45 05 00 00 00 24 09 00 89
    
  3. ACI Host CLI test: PBAP download phone book.

    2023-03-09 16:54:40,282 INFO: input command: pbap download_PB
    2023-03-09 16:54:40,283 INFO: Parser cmdParser: cmd opcode: 0420 param: [04] name: CMD_PBAP_DOWNLOAD
    2023-03-09 16:54:40,283 INFO: Packet sendPacket: <<<send packet: AA 05 03 00 20 04 04 C0
    2023-03-09 16:54:40,298 INFO: AciHostCLI continuously_read: >>>receive packet: AA 24 05 00 00 00 20 04 00 A3
    2023-03-09 16:54:40,299 INFO: Parser eventParser: syncWord: AA,seqn: 24,len: 5,opcode: 0000,params: [20 04 00], check_sum: A3
    2023-03-09 16:54:40,299 INFO: Parser eventParser: event name: EVENT_ACK
    2023-03-09 16:54:40,299 INFO: Parser eventParser: event_id: [20 04]
    2023-03-09 16:54:40,299 INFO: Parser eventParser: status: [00]
    2023-03-09 16:54:40,426 INFO: AciHostCLI continuously_read: >>>receive packet: AA 25 13 00 02 05 07 02 00 00 00 02 00 C0 F8 EF 2C 41 AF 7B 6C 32 20 BA
    2023-03-09 16:54:40,427 INFO: Parser eventParser: syncWord: AA,seqn: 25,len: 19,opcode: 0502,params: [07 02 00 00 00 02 00 C0 F8 EF 2C 41 AF 7B 6C 32 20], check_sum: BA
    2023-03-09 16:54:40,427 INFO: Parser eventParser: event name: EVENT_PBAP_DOWNLOAD_START
    2023-03-09 16:54:40,428 INFO: Packet sendPacket: <<<send packet: AA 06 05 00 00 00 02 05 00 EE
    2023-03-09 16:54:40,633 INFO: AciHostCLI continuously_read: >>>receive packet: AA 26 66 00 00 05 62 00 42 45 47 49 4E 3A 56 43 41 52 44 0D 0A 56 45 52 53 49 4F 4E 3A 32 2E 31
    2023-03-09 16:54:40,634 INFO: Parser eventParser: syncWord: AA,seqn: 26,len: 102,opcode: 0500,params: [62 00 42 45 47 49 4E 3A 56 43 41 52 44 0D 0A 56 45 52 53 49 4F 4E 3A 32 2E 31 0D 0A 46 4E 3B 43], check_sum: B9
    2023-03-09 16:54:40,635 INFO: Parser eventParser: event name: EVENT_PBAP_REPORT_DATA
    2023-03-09 16:54:40,635 INFO: Packet sendPacket: <<<send packet: AA 07 05 00 00 00 00 05 00 EF
    2023-03-09 16:54:40,652 INFO: AciHostCLI continuously_read: >>>receive packet: AA 27 43 00 00 05 3F 00 42 45 47 49 4E 3A 56 43 41 52 44 0D 0A 56 45 52 53 49 4F 4E 3A 32 2E 31
    2023-03-09 16:54:40,668 INFO: Parser eventParser: syncWord: AA,seqn: 28,len: 9,opcode: 0503,params: [07 41 AF 7B 6C 32 20], check_sum: 97
    2023-03-09 16:54:40,669 INFO: Parser eventParser: event name: EVENT_PBAP_DOWNLOAD_CMPL
    2023-03-09 16:54:40,669 INFO: Packet sendPacket: <<<send packet: AA 09 05 00 00 00 03 05 00 EA
    
  4. ACI Host CLI test: PBAP download current call history.

    2023-03-09 16:55:19,105 INFO: input command: pbap download_cch
    2023-03-09 16:55:19,106 INFO: Parser cmdParser: cmd opcode: 0420 param: [05] name: CMD_PBAP_DOWNLOAD
    2023-03-09 16:55:19,107 INFO: Packet sendPacket: <<<send packet: AA 0D 03 00 20 04 05 B7
    2023-03-09 16:55:19,124 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2C 05 00 00 00 20 04 00 9B
    2023-03-09 16:55:19,124 INFO: Parser eventParser: syncWord: AA,seqn: 2C,len: 5,opcode: 0000,params: [20 04 00], check_sum: 9B
    2023-03-09 16:55:19,125 INFO: Parser eventParser: event name: EVENT_ACK
    2023-03-09 16:55:19,125 INFO: Parser eventParser: event_id: [20 04]
    2023-03-09 16:55:19,125 INFO: Parser eventParser: status: [00]
    2023-03-09 16:55:19,524 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2D 13 00 02 05 04 2C 01 00 00 2C 01 B7 B8 C4 2C 41 AF 7B 6C 32 20 D3
    2023-03-09 16:55:19,525 INFO: Parser eventParser: syncWord: AA,seqn: 2D,len: 19,opcode: 0502,params: [04 2C 01 00 00 2C 01 B7 B8 C4 2C 41 AF 7B 6C 32 20], check_sum: D3
    2023-03-09 16:55:19,526 INFO: Parser eventParser: event name: EVENT_PBAP_DOWNLOAD_START
    2023-03-09 16:55:19,526 INFO: Packet sendPacket: <<<send packet: AA 0E 05 00 00 00 02 05 00 E6
    2023-03-09 16:55:20,158 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2E 76 00 00 05 72 00 42 45 47 49 4E 3A 56 43 41 52 44 0D 0A 56 45 52 53 49 4F 4E 3A 32 2E 31
    2023-03-09 16:55:20,159 INFO: Parser eventParser: syncWord: AA,seqn: 2E,len: 118,opcode: 0500,params: [72 00 42 45 47 49 4E 3A 56 43 41 52 44 0D 0A 56 45 52 53 49 4F 4E 3A 32 2E 31 0D 0A 46 4E 3A 0D], check_sum: A4
    2023-03-09 16:55:20,159 INFO: Parser eventParser: event name: EVENT_PBAP_REPORT_DATA
    2023-03-09 16:55:20,160 INFO: Packet sendPacket: <<<send packet: AA 0F 05 00 00 00 00 05 00 E7
    2023-03-09 16:55:20,177 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2F 76 00 00 05 72 00 42 45 47 49 4E 3A 56 43 41 52 44 0D 0A 56 45 52 53 49 4F 4E 3A 32 2E 31
    2023-03-09 16:55:20,177 INFO: Parser eventParser: syncWord: AA,seqn: 2F,len: 118,opcode: 0500,params: [72 00 42 45 47 49 4E 3A 56 43 41 52 44 0D 0A 56 45 52 53 49 4F 4E 3A 32 2E 31 0D 0A 46 4E 3A 0D], check_sum: 94
    2023-03-09 16:55:20,178 INFO: Parser eventParser: event name: EVENT_PBAP_REPORT_DATA
    2023-03-09 16:55:20,178 INFO: Packet sendPacket: <<<send packet: AA 10 05 00 00 00 00 05 00 E6
    
    //PBAP keeps reporting data ...
    
    2023-03-09 16:55:40,239 INFO: AciHostCLI continuously_read: >>>receive packet: AA 7B 09 00 03 05 04 41 AF 7B 6C 32 20 47
    2023-03-09 16:55:40,240 INFO: Parser eventParser: syncWord: AA,seqn: 7B,len: 9,opcode: 0503,params: [04 41 AF 7B 6C 32 20], check_sum: 47
    2023-03-09 16:55:40,240 INFO: Parser eventParser: event name: EVENT_PBAP_DOWNLOAD_CMPL
    2023-03-09 16:55:40,240 INFO: Packet sendPacket: <<<send packet: AA 5B 05 00 00 00 03 05 00 98
    
  5. ACI Host CLI test: PBAP download all.

    2023-03-09 16:56:56,241 INFO: input command: pbap download_all
    2023-03-09 16:56:56,242 INFO: Parser cmdParser: cmd opcode: 0420 param: [03] name: CMD_PBAP_DOWNLOAD
    2023-03-09 16:56:56,242 INFO: Packet sendPacket: <<<send packet: AA 5C 03 00 20 04 03 6A
    2023-03-09 16:56:56,262 INFO: AciHostCLI continuously_read: >>>receive packet: AA 7C 05 00 00 00 20 04 00 4B
    2023-03-09 16:56:56,263 INFO: Parser eventParser: syncWord: AA,seqn: 7C,len: 5,opcode: 0000,params: [20 04 00], check_sum: 4B
    2023-03-09 16:56:56,264 INFO: Parser eventParser: event name: EVENT_ACK
    2023-03-09 16:56:56,265 INFO: Parser eventParser: event_id: [20 04]
    2023-03-09 16:56:56,265 INFO: Parser eventParser: status: [00]
    2023-03-09 16:56:56,821 INFO: AciHostCLI continuously_read: >>>receive packet: AA 7D 13 00 02 05 07 02 00 00 00 02 00 6A 08 C5 2C 41 AF 7B 6C 32 20 D2
    2023-03-09 16:56:56,822 INFO: Parser eventParser: syncWord: AA,seqn: 7D,len: 19,opcode: 0502,params: [07 02 00 00 00 02 00 6A 08 C5 2C 41 AF 7B 6C 32 20], check_sum: D2
    2023-03-09 16:56:56,822 INFO: Parser eventParser: event name: EVENT_PBAP_DOWNLOAD_START
    2023-03-09 16:56:56,822 INFO: Packet sendPacket: <<<send packet: AA 5D 05 00 00 00 02 05 00 97
    2023-03-09 16:56:57,027 INFO: AciHostCLI continuously_read: >>>receive packet: AA 7E 66 00 00 05 62 00 42 45 47 49 4E 3A 56 43 41 52 44 0D 0A 56 45 52 53 49 4F 4E 3A 32 2E 31
    2023-03-09 16:56:57,028 INFO: Parser eventParser: syncWord: AA,seqn: 7E,len: 102,opcode: 0500,params: [62 00 42 45 47 49 4E 3A 56 43 41 52 44 0D 0A 56 45 52 53 49 4F 4E 3A 32 2E 31 0D 0A 46 4E 3B 43], check_sum: 61
    2023-03-09 16:56:57,028 INFO: Parser eventParser: event name: EVENT_PBAP_REPORT_DATA
    2023-03-09 16:56:57,029 INFO: Packet sendPacket: <<<send packet: AA 5E 05 00 00 00 00 05 00 98
    
    //PBAP keep reporting data ...
    
    2023-03-09 16:57:18,438 INFO: AciHostCLI continuously_read: >>>receive packet: AA D2 09 00 03 05 04 41 AF 7B 6C 32 20 F0
    2023-03-09 16:57:18,438 INFO: Parser eventParser: syncWord: AA,seqn: D2,len: 9,opcode: 0503,params: [04 41 AF 7B 6C 32 20], check_sum: F0
    2023-03-09 16:57:18,438 INFO: Parser eventParser: event name: EVENT_PBAP_DOWNLOAD_CMPL
    2023-03-09 16:57:18,439 INFO: Packet sendPacket: <<<send packet: AA B1 05 00 00 00 03 05 00 42
    
  6. ACI Host CLI test: PBAP disconnect.

    2023-03-09 17:33:30,246 INFO: input command: pbap disconnect
    2023-03-09 17:33:30,247 INFO: Parser cmdParser: cmd opcode: 0426 param: [] name: CMD_PBAP_DISCONNECT
    2023-03-09 17:33:30,248 INFO: Packet sendPacket: <<<send packet: AA 38 02 00 26 04 8C
    2023-03-09 17:33:30,265 INFO: AciHostCLI continuously_read: >>>receive packet: AA 38 05 00 00 00 26 04 00 89
    2023-03-09 17:33:30,265 INFO: Parser eventParser: syncWord: AA,seqn: 38,len: 5,opcode: 0000,params: [26 04 00], check_sum: 89
    2023-03-09 17:33:30,266 INFO: Parser eventParser: event name: EVENT_ACK
    2023-03-09 17:33:30,266 INFO: Parser eventParser: event_id: [26 04]
    2023-03-09 17:33:30,266 INFO: Parser eventParser: status: [00]
    2023-03-09 17:33:30,361 INFO: AciHostCLI continuously_read: >>>receive packet: AA 39 0B 00 04 00 40 41 AF 7B 6C 32 20 00 00 4F
    2023-03-09 17:33:30,361 INFO: Parser eventParser: syncWord: AA,seqn: 39,len: 11,opcode: 0004,params: [40 41 AF 7B 6C 32 20 00 00], check_sum: 4F
    2023-03-09 17:33:30,362 INFO: Parser eventParser: event name: EVENT_DISCONNECT_STATUS
    2023-03-09 17:33:30,362 INFO: Parser eventParser: link_id: [40]
    2023-03-09 17:33:30,362 INFO: Parser eventParser: profile: [41]
    2023-03-09 17:33:30,362 INFO: Parser eventParser: bd_addr: [AF 7B 6C 32 20 00]
    2023-03-09 17:33:30,362 INFO: Parser eventParser: cause: [00]
    2023-03-09 17:33:30,363 INFO: Packet sendPacket: <<<send packet: AA 39 05 00 00 00 04 00 00 BE
    

CIS Acceptor Function

Firstly, CIS Acceptor needs to start LE Audio advertising, and then CIS Initiator can scan and connect it. After the LE Audio link is connected, CIS Acceptor can control remote media player and telephone call.

CIS Acceptor connection process:

../../../_images/bt_audio_trx_cis_acc_conn.png

CIS Acceptor Connection

CIS Acceptor media/call control process:

../../../_images/bt_audio_trx_cis_acc_mcp.png

CIS Acceptor Media Control

../../../_images/bt_audio_trx_cis_acc_ccp.png

CIS Acceptor Call Control

../../../_images/bt_audio_trx_cis_acc_vcs.png

CIS Acceptor Volume Control

ACI Host CLI Test: CIS Acceptor Function
ACI Host CLI CMD for CIS Acceptor

Command

Parameters

ACI Host CLI CMD

CMD_LEA_ADV_START(0x3250)

lea_adv_start

CMD_LEA_ADV_STOP

None

lea_adv_stop

CMD_LEA_CCP_CALL_CP

conn_id=0ncall_cp=0x00

lea_call_cp accept

CMD_LEA_CCP_CALL_CP

conn_id=0ncall_cp=0x01

lea_call_cp terminate

CMD_LEA_CCP_CALL_CP

conn_id=0ncall_cp=0x02

lea_call_cp local_hold

CMD_LEA_CCP_CALL_CP

conn_id=0ncall_cp=0x03

lea_call_cp local_retrieve

CMD_LEA_CCP_CALL_CP

conn_id=0ncall_cp=0x04

lea_call_cp originate

CMD_LEA_CCP_CALL_CP

conn_id=0ncall_cp=0x05

lea_call_cp join

CMD_LEA_MCP_MEDIA_CP

conn_id=0nmedia_cp=0x01

lea_media_cp play

CMD_LEA_MCP_MEDIA_CP

conn_id=0nmedia_cp=0x02

lea_media_cp pause

CMD_LEA_MCP_MEDIA_CP

conn_id=0nmedia_cp=0x03

lea_media_cp fast_rewind

CMD_LEA_MCP_MEDIA_CP

conn_id=0nmedia_cp=0x04

lea_media_cp fast_forward

CMD_LEA_MCP_MEDIA_CP

conn_id=0nmedia_cp=0x05

lea_media_cp stop

CMD_LEA_MCP_MEDIA_CP

conn_id=0nmedia_cp=0x30

lea_media_cp previous_track

CMD_LEA_MCP_MEDIA_CP

conn_id=0nmedia_cp=0x31

lea_media_cp next_track

CMD_LEA_VCS_SET

conn_id=0nvol_type=0x00

lea_vcs vol_up

CMD_LEA_VCS_SET

conn_id=0nvol_type=0x01

lea_vcs vol_down

CMD_LEA_VCS_SET

conn_id=0nvol_type=0x02

lea_vcs spk_mute

CMD_LEA_VCS_SET

conn_id=0nvol_type=0x03

lea_vcs spk_unmute

For detailed information, please refer to CIS Acceptor ACI Host CLI Test.

BIS Acceptor Function

If an assistant exists, the sink could connect with an assistant and ask the assistant to assist it for scanning and get the extended advertising and periodic advertising information. If the assistant doesn’t exist, the sink needs to sync the source autonomously.

BIS sync establish process:

../../../_images/bis_rx_flow.png

BIS Transmission

ACI Host CLI Test: BIS Acceptor Function

Please refer to LE Audio Acceptor.

Bluetooth Audio Transceiver

This chapter introduces the functionality of the bt_audio_transceiver application scenario. This functionality is enabled by opening the macro definition F_APP_BT_AUDIO_TRANSCEIVER_DEMO_SUPPORT in app_flags.h. This chapter describes how to use these functions and the flow of how to test them, including the MSCs of the ACI Device and ACI Host interaction, and the commands used by ACI Host CLI Tool.

A2DP Transparent Transmission (A2DP Output)

Two typical application scenarios are introduced at the beginning of the article. Based on the A2DP scenario, A2DP data can be transferred from the Phone, through ACI Device 1 and ACI Device 2, to the Headset. This function is called A2DP Transparent Transmission.

A2DP Transparent Transmission process:

../../../_images/bt_audio_trx_a2dp_transfer.png

A2DP Transparent Transmission

ACI Device 1 and ACI Device 2 transmit data through SPI. The SPI role of ACI Device 1 is master and that of ACI Device 2 is the slave. Please set flag F_APP_SPI_ROLE_MASTER on ACI Device 1 and set flag F_APP_SPI_ROLE_SLAVE on ACI Device 2 to enable SPI before building the application.

The AVDTP data format between Phone and ACI Device 1 may be different from that between ACI Device 2 and Headset. To solve this mismatch, the Audio Pipe is introduced on ACI Device 2 to convert the format in the route of Phone -> ACI Device 1 to that in the route of ACI Device 2 -> Headset.

ACI Host CLI Test (A2DP Transfer)

Before using the function, the hardware environment needs to be configured:

  1. Bluetooth address modification: Use the MCUConfig Tool to modify the Bluetooth address of ACI Device 2 to make it different from ACI Device 1.

  2. SPI wiring preparation: The recommended connection is P0_0(SPI_SCK), P1_0(SPI_MOSI), P0_1(SPI_MISO), P1_1(SPI_CS), P2_1(PIN_GPIO) and GND of ACI Device 1 and ACI Device 2. Developers can connect according to the pin settings in board.h.

The play route of Device 2 should be configured to A2DP Source through CMD_A2DP_XMIT_SET_ROUTE_OUT. The ACI Host sends CMD_A2DP_XMIT_ROUTE_OUT_CTRL with status param to ACI Device 2 to start or stop processing and sending data to Headset. The corresponding UART CMD packet and tool log are as follows.

ACI Host CLI CMD for A2DP Transparent Transmission

Command

Parameters

ACI Host CLI CMD

CMD_A2DP_XMIT_SET_ROUTE_OUT(0x3223)

action = XMIT_PLAY_ROUTE_A2DP_SRC(0)

a2dpxmitroute a2dpsrc

CMD_A2DP_XMIT_ROUTE_OUT_CTRL(0x3220)

action = XMIT_PLAY_STATE_START(0)

a2dpxmitctrl start

CMD_A2DP_XMIT_ROUTE_OUT_CTRL(0x3220)

action = XMIT_PLAY_STATE_IDLE(1)

a2dpxmitctrl stop

  1. ACI Host CLI test (ACI Device 2): Initiate ACI Device 2 as SPI slave.

    2023-05-15 14:53:17,075 INFO: input command: spiinit slave
    2023-05-15 14:53:17,075 INFO: Parser cmdParser: cmd opcode: 3020 param: [01] name: CMD_SPI_INIT
    2023-05-15 14:53:17,076 INFO: Packet sendPacket: <<<send packet: AA 03 03 00 20 30 01 C8
    2023-05-15 14:53:17,082 INFO: AciHostCLI continuously_read: >>>receive packet: AA 03 05 00 00 00 20 30 00 C7
    2023-05-15 14:53:17,083 INFO: Parser eventParser: syncWord: AA,seqn: 03,len: 5,opcode: 0000,params: [20 30 00], check_sum: C7
    2023-05-15 14:53:17,086 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-15 14:53:17,087 INFO: Parser eventParser: event_id: [20 30]
    2023-05-15 14:53:17,087 INFO: Parser eventParser: status: [00]
    
  2. ACI Host CLI test (ACI Device 1): Initiate ACI Device 1 as SPI master.

    2023-05-15 14:53:20,655 INFO: input command: spiinit master
    2023-05-15 14:53:20,655 INFO: Parser cmdParser: cmd opcode: 3100 param: [00] name: CMD_SPI_INIT
    2023-05-15 14:53:20,656 INFO: Packet sendPacket: <<<send packet: AA 03 03 00 20 30 00 C9
    2023-05-15 14:53:20,670 INFO: AciHostCLI continuously_read: >>>receive packet: AA 03 05 00 00 00 20 30 00 C7
    2023-05-15 14:53:20,671 INFO: Parser eventParser: syncWord: AA,seqn: 03,len: 5,opcode: 0000,params: [20 30 00], check_sum: C7
    2023-05-15 14:53:20,671 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-15 14:53:20,672 INFO: Parser eventParser: event_id: [20 30]
    2023-05-15 14:53:20,672 INFO: Parser eventParser: status: [00]
    
  3. ACI Host CLI test (ACI Device 1): Connect ACI Device 1 to Phone.

    Please refer to Connect to Phone.

  4. ACI Host CLI test (ACI Device 2): Connect Headset to ACI Device 2.

    Please refer to Connect to BUD.

  5. Phone starts to play music.

  6. ACI Host CLI test (ACI Device 2): Start or stop transmitting data to Headset.

    Use a2dpxmitroute a2dpsrc to configure the output data route to A2DP Source, and input a2dpxmitctrl start to let the Headset get incoming music data from the Phone, input a2dpxmitctrl stop, no data will be transmitted to the Headset, music will stop.

    2023-05-15 14:53:58,736 INFO: input command: a2dpxmitroute a2dpsrc
    2023-05-15 14:53:58,737 INFO: Parser cmdParser: cmd opcode: 3223 param: [00] name: CMD_A2DP_XMIT_SET_ROUTE_OUT
    2023-05-15 14:53:58,737 INFO: Packet sendPacket: <<<send packet: AA 12 03 00 23 32 00 B5
    2023-05-15 14:53:58,748 INFO: AciHostCLI continuously_read: >>>receive packet: AA 12 05 00 00 00 23 32 00 B3
    2023-05-15 14:53:58,749 INFO: Parser eventParser: syncWord: AA,seqn: 12,len: 5,opcode: 0000,params: [23 32 00], check_sum: B3
    2023-05-15 14:53:58,749 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-15 14:53:58,750 INFO: Parser eventParser: event_id: [23 32]
    2023-05-15 14:53:58,750 INFO: Parser eventParser: status: [00]
    
    2023-05-15 14:54:01,482 INFO: input command: a2dpxmitctrl start
    2023-05-15 14:54:01,483 INFO: Parser cmdParser: cmd opcode: 3220 param: [00] name: CMD_A2DP_XMIT_ROUTE_OUT_CTRL
    2023-05-15 14:54:01,483 INFO: Packet sendPacket: <<<send packet: AA 13 03 00 20 32 00 B7
    2023-05-15 14:54:01,499 INFO: AciHostCLI continuously_read: >>>receive packet: AA 13 05 00 00 00 20 32 00 B5
    2023-05-15 14:54:01,499 INFO: Parser eventParser: syncWord: AA,seqn: 13,len: 5,opcode: 0000,params: [20 32 00], check_sum: B5
    2023-05-15 14:54:01,500 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-15 14:54:01,500 INFO: Parser eventParser: event_id: [20 32]
    2023-05-15 14:54:01,501 INFO: Parser eventParser: status: [00]
    
    2023-05-15 14:54:11,089 INFO: input command: a2dpxmitctrl stop
    2023-05-15 14:54:11,089 INFO: Parser cmdParser: cmd opcode: 3220 param: [01] name: CMD_A2DP_XMIT_ROUTE_OUT_CTRL
    2023-05-15 14:54:11,090 INFO: Packet sendPacket: <<<send packet: AA 14 03 00 20 32 01 B5
    2023-05-15 14:54:11,097 INFO: AciHostCLI continuously_read: >>>receive packet: AA 14 05 00 00 00 20 32 00 B4
    2023-05-15 14:54:11,101 INFO: Parser eventParser: syncWord: AA,seqn: 14,len: 5,opcode: 0000,params: [20 32 00], check_sum: B4
    2023-05-15 14:54:11,103 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-15 14:54:11,104 INFO: Parser eventParser: event_id: [20 32]
    2023-05-15 14:54:11,104 INFO: Parser eventParser: status: [00]
    

A2DP Transparent Transmission (BIS Output)

LE Audio is a new Bluetooth wireless standard for transmitting audio. LE Audio operates on the Bluetooth Low Energy radio, which is different from Classic Audio (like A2DP or HFP) that operates on the Bluetooth Classic radio. LE Audio transmits streams through BIS (Broadcast Isochronous Streams) or CIS (Connected Isochronous Streams). Currently, the Bluetooth Audio Transceiver application supports broadcasting audio through BIS.

As a broadcaster, the audio data for broadcasting is necessary. Based on the typical A2DP scenario (Refer to Bluetooth Audio Transceiver), we use the AVDTP data received from the Phone by ACI Device 1 as the raw data for ACI Device 2. The received AVDTP data would be converted to LC3 format supported by LE Audio through the Audio Pipe. On ACI Device 2, a BIG with 1 or 2 BIS would be set up and broadcast the converted LC3 data externally. The topology is shown in the figure below.

../../../_images/bt_audio_trx_broudcast_source_topology.png

Broadcast Source Topology

Before enabling the broadcast source feature, please ensure that the LE isochronous function and PA function are enabled in the MCUConfig Tool, and at least 1 BIG, 2 BIS, and 1 PA are set up.

../../../_images/bis_tx_config_tool.png

BIS Configuration

Broadcast Source process:

../../../_images/bis_tx_sequence.png

BIS Transmission

ACI Host CLI Test (BIS Transfer)

The ACI Host sends CMD_LEA_BSRC_INIT to ACI Device 2 to configure the codec type, BIS number, and encryption mode. The play route of Device 2 should be configured to BIS through CMD_A2DP_XMIT_SET_ROUTE_OUT, and the ACI Host sends CMD_A2DP_XMIT_ROUTE_OUT_CTRL with status param to ACI Device 2 to start or stop processing and sending data to Headset.

ACI Host CLI CMD for A2DP Transparent Transmission

Command

Parameters

ACI Host CLI CMD

CMD_LEA_BSRC_INIT(0x3020)

codec type = CODEC_CFG_ITEM_48_4(48k) BIS num = 1 encryption = true ull_mode = true pd = 0x2710

bsrcinit 48k_1bis

CMD_LEA_BSRC_INIT(0x3020)

codec type = CODEC_CFG_ITEM_16_2(16k) BIS num = 1 encryption = false ull_mode = true pd = 0x2710

bsrcinit 16k_1bis

CMD_LEA_BSRC_INIT(0x3020)

codec type = CODEC_CFG_ITEM_48_4(48k) BIS num = 2 encryption = false ull_mode = true pd = 0x2710

bsrcinit 48k_2bis

CMD_LEA_BSRC_INIT(0x3020)

codec type = CODEC_CFG_ITEM_16_2(16k) BIS num = 2 encryption = false ull_mode = true pd = 0x2710

bsrcinit 16k_2bis

CMD_A2DP_XMIT_SET_ROUTE_OUT(0x3223)

action = XMIT_PLAY_ROUTE_A2DP_SRC(0)

a2dpxmitroute bis

CMD_A2DP_XMIT_ROUTE_OUT_CTRL(0x3220)

action = XMIT_PLAY_STATE_START(0)

a2dpxmitctrl start

CMD_A2DP_XMIT_ROUTE_OUT_CTRL(0x3220)

action = XMIT_PLAY_STATE_IDLE(1)

a2dpxmitctrl stop

The corresponding UART CMD packet and tool log are as follows:

  1. ACI Host CLI test (ACI Device 2): Initiate ACI Device 2 as SPI slave.

    2023-05-15 14:53:17,075 INFO: input command: spiinit slave
    2023-05-15 14:53:17,075 INFO: Parser cmdParser: cmd opcode: 3100 param: [01] name: CMD_SPI_INIT
    2023-05-15 14:53:17,076 INFO: Packet sendPacket: <<<send packet: AA 03 03 00 20 30 01 C8
    2023-05-15 14:53:17,082 INFO: AciHostCLI continuously_read: >>>receive packet: AA 03 05 00 00 00 20 30 00 C7
    2023-05-15 14:53:17,083 INFO: Parser eventParser: syncWord: AA,seqn: 03,len: 5,opcode: 0000,params: [20 30 00], check_sum: C7
    2023-05-15 14:53:17,086 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-15 14:53:17,087 INFO: Parser eventParser: event_id: [20 30]
    2023-05-15 14:53:17,087 INFO: Parser eventParser: status: [00]
    
  2. ACI Host CLI test (ACI Device 1): Initiate ACI Device 1 as SPI master.

    2023-05-15 14:53:20,655 INFO: input command: spiinit master
    2023-05-15 14:53:20,655 INFO: Parser cmdParser: cmd opcode: 3100 param: [00] name: CMD_SPI_INIT
    2023-05-15 14:53:20,656 INFO: Packet sendPacket: <<<send packet: AA 03 03 00 20 30 00 C9
    2023-05-15 14:53:20,670 INFO: AciHostCLI continuously_read: >>>receive packet: AA 03 05 00 00 00 20 30 00 C7
    2023-05-15 14:53:20,671 INFO: Parser eventParser: syncWord: AA,seqn: 03,len: 5,opcode: 0000,params: [20 30 00], check_sum: C7
    2023-05-15 14:53:20,671 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-15 14:53:20,672 INFO: Parser eventParser: event_id: [20 30]
    2023-05-15 14:53:20,672 INFO: Parser eventParser: status: [00]
    
  3. ACI Host CLI test (ACI Device 2): Initiate broadcast source.

    2023-05-15 14:53:25,753 INFO: input command: bsrcinit 48k_1bis
    2023-05-15 14:53:25,753 INFO: Parser cmdParser: cmd opcode: 3020 param: [0D 01 00 01 10 27] name: CMD_LEA_BSRC_INIT
    2023-05-15 14:53:25,754 INFO: Packet sendPacket: <<<send packet: AA 04 05 00 20 30 0D 01 00 01 10 27 B7
    2023-05-15 14:53:25,766 INFO: AciHostCLI continuously_read: >>>receive packet: AA 04 05 00 00 00 20 30 00 C5
    2023-05-15 14:53:25,767 INFO: Parser eventParser: syncWord: AA,seqn: 04,len: 5,opcode: 0000,params: [20 30 00], check_sum: C5
    2023-05-15 14:53:25,768 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-15 14:53:25,768 INFO: Parser eventParser: event_id: [20 30]
    2023-05-15 14:53:25,769 INFO: Parser eventParser: status: [00]
    
  4. ACI Host CLI test (ACI Device 1): Connect ACI Device 1 to Phone.

    Please refer to Connect to Phone.

    Use a2dpxmitroute bis to configure the output data route to BIS, and input a2dpxmitctrl start to let the Headset receive incoming music data from the Phone. If you input a2dpxmitctrl stop, no data will be transmitted to the Headset, and the music will stop.

  5. ACI Host CLI test (ACI Device 1): Start streaming.

    2023-05-15 14:54:16,535 INFO: input command: a2dpxmitroute bis
    2023-05-15 14:54:16,535 INFO: Parser cmdParser: cmd opcode: 3223 param: [01] name: CMD_A2DP_XMIT_SET_ROUTE_OUT
    2023-05-15 14:54:16,536 INFO: Packet sendPacket: <<<send packet: AA 15 03 00 23 32 01 B1
    2023-05-15 14:54:16,549 INFO: AciHostCLI continuously_read: >>>receive packet: AA 15 05 00 00 00 23 32 00 B0
    2023-05-15 14:54:16,550 INFO: Parser eventParser: syncWord: AA,seqn: 15,len: 5,opcode: 0000,params: [23 32 00], check_sum: B0
    2023-05-15 14:54:16,551 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-15 14:54:16,551 INFO: Parser eventParser: event_id: [23 32]
    2023-05-15 14:54:16,552 INFO: Parser eventParser: status: [00]
    
  6. ACI Host CLI test (ACI Device 1): Start streaming.

    2023-05-15 14:54:26,384 INFO: input command: a2dpxmitctrl start
    2023-05-15 14:54:26,384 INFO: Parser cmdParser: cmd opcode: 3220 param: [00] name: CMD_A2DP_XMIT_ROUTE_OUT_CTRL
    2023-05-15 14:54:26,385 INFO: Packet sendPacket: <<<send packet: AA 16 03 00 20 32 00 B4
    2023-05-15 14:54:26,402 INFO: AciHostCLI continuously_read: >>>receive packet: AA 16 05 00 00 00 20 32 00 B2
    2023-05-15 14:54:26,403 INFO: Parser eventParser: syncWord: AA,seqn: 16,len: 5,opcode: 0000,params: [20 32 00], check_sum: B2
    2023-05-15 14:54:26,404 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-15 14:54:26,404 INFO: Parser eventParser: event_id: [20 32]
    2023-05-15 14:54:26,404 INFO: Parser eventParser: status: [00]
    
  7. ACI Host CLI test (ACI Device 1): Stop streaming.

    2023-05-15 14:54:48,305 INFO: input command: a2dpxmitctrl stop
    2023-05-15 14:54:48,305 INFO: Parser cmdParser: cmd opcode: 3220 param: [01] name: CMD_A2DP_XMIT_ROUTE_OUT_CTRL
    2023-05-15 14:54:48,306 INFO: Packet sendPacket: <<<send packet: AA 17 03 00 20 32 01 B2
    2023-05-15 14:54:48,314 INFO: AciHostCLI continuously_read: >>>receive packet: AA 17 05 00 00 00 20 32 00 B1
    2023-05-15 14:54:48,316 INFO: Parser eventParser: syncWord: AA,seqn: 17,len: 5,opcode: 0000,params: [20 32 00], check_sum: B1
    2023-05-15 14:54:48,319 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-15 14:54:48,320 INFO: Parser eventParser: event_id: [20 32]
    2023-05-15 14:54:48,321 INFO: Parser eventParser: status: [00]
    

HFP Transparent Transmission

Based on the SCO scenario introduced at the beginning of the article, HFP transparent transmission can be realized by transmitting SCO data from the Phone, through ACI Device 1 and ACI Device 2, to the Headset.

ACI Device 1 and ACI Device 2 transmit data through SPI. The SPI role of ACI Device 1 is master, and that of ACI Device 2 is the slave. Similar to 6.1.1, please set the flag F_APP_SPI_ROLE_MASTER on ACI Device 1 and set the flag F_APP_SPI_ROLE_SLAVE on ACI Device 2 before building.

HFP Transparent Transmission process:

../../../_images/bt_audio_trx_hfp_transfer.png

HFP Transparent Transmission

In addition, the operations of answering, hanging up, muting the MIC, and increasing or decreasing the speaker volume can be realized only by the host.

HFP Transparent Transmission host control process:

../../../_images/bt_audio_trx_hfp_transfer_host_ctrl.png

HFP Transparent Transmission Host Control

ACI Host CLI Test (HFP Transfer)

Before using the function, the hardware environment needs to be configured:

  • Bluetooth address modification: Use MCUConfig Tool to modify the Bluetooth address of ACI Device 2 to make it different from ACI Device 1.

  • SPI wiring preparation: The recommended connection is P0_0(SPI_SCK), P1_0(SPI_MOSI), P0_1(SPI_MISO), P1_1(SPI_CS), P2_1(PIN_GPIO), and GND of ACI Device 1 and ACI Device 2. Developers can connect according to the pin settings in board.h.

The ACI Host sends SPI_AG_SCO_CONNECT with status param to ACI Device 2 to connect the SCO link between ACI Device 2 and the Headset to send data. Correspondingly, the ACI Host sends SPI_AG_SCO_DISCONNECT to ACI Device 2 to disconnect the SCO link between ACI Device 2 and the Headset. The ACI Host CLI commands are hfpag conn and hfpag disconn. If the phone supports an outband ringtone, commands such as hfpag call_incoming, hfpag call_answer, and hfpag call_terminate are required to make the Headset simulate playing/stopping the ringtone and dropping calls.

The corresponding UART CMD packet and tool log are as follows.

ACI Host CLI CMD for HFP Transparent Transmission

Command

Parameters

ACI Host CLI CMD

CMD_HFP_AG_CONNECT_SCO(0x0480)

action = SPI_AG_SCO_CONNECT(0)

hfpag conn_0

CMD_HFP_AG_DISCONNECT_SCO(0x0481)

action = SPI_AG_SCO_DISCONNECT(0)

hfpag disconn_0

CMD_HFP_AG_CALL_INCOMING(0x0482)

action = NOTIFY_INCOMING_CALL(0)

hfpag call_incoming

CMD_HFP_AG_CALL_ANSWER(0x0483)

action = ANSWER_INCOMING_CALL(0)

hfpag call_answer

CMD_HFP_AG_CALL_TERMINATE(0x0484)

action = TERMINATE_CALL(0)

hfpag call_terminate

CMD_HFP_AG_MIC_GAIN_LEVEL_SET(0x0488)

action = MIC_MUTE(0x00)

hfpag mic_mute

CMD_HFP_AG_MIC_GAIN_LEVEL_SET(0x0488)

action = MIC_UNMUTE(0x0A)

hfpag mic_unmute

CMD_HFP_AG_SPEAKER_GAIN_LEVEL_SET(0x0489)

action = SPK_VOL_DOWN(0x00)

hfpag spk_vol_up

CMD_HFP_AG_SPEAKER_GAIN_LEVEL_SET(0x0489)

action = SPK_VOL_UP(0x00)

hfpag spk_vol_down

CMD_MMI(0x0004)

action = ANSWER_CALL(0x03)

mmi answer_call

CMD_MMI(0x0004)

action = REJECT_CALL(0x04)

mmi reject_call

CMD_MMI(0x0004)

action = END_CALL(0x05)

mmi end_active_call

  1. ACI Host CLI test (ACI Device 2): Initiate ACI Device 2 as SPI slave.

    Please refer to ACI Host CLI Test (A2DP Transfer).

  2. ACI Host CLI test (ACI Device 1): Initiate ACI Device 1 as SPI master.

    Please refer to ACI Host CLI Test (A2DP Transfer).

  3. ACI Host CLI test (ACI Device 1): Connect ACI Device 1 to Phone.

    Please refer to Connect to Phone.

  4. ACI Host CLI test (ACI Device 2): Connect Headset to ACI Device 2.

    Please refer to Connect to BUD.

  5. Call the Phone connected to ACI Device 1.

  6. ACI Host CLI test (ACI Device 2): Connect or disconnect the SCO link between ACI Device 2 and Headset.

    If input hfpag conn_0, the Headset will be able to hear incoming sounds from the Phone MIC and make calls, if input hfpag disconn_0, Headset will disconnect the SCO.

    2023-03-06 14:34:07,113 INFO: input command: hfpag conn_0
    2023-03-06 14:34:07,115 INFO: Parser cmdParser: cmd opcode: 0480 param: [00] name: CMD_HFP_AG_CONNECT_SCO
    2023-03-06 14:34:07,116 INFO: Packet sendPacket: <<<send packet: AA 10 03 00 80 04 00 E4
    2023-03-06 14:34:07,129 INFO: AciHostCLI continuously_read: >>>receive packet: AA 10 05 00 00 00 80 04 00 E2
    2023-03-06 14:34:07,129 INFO: Parser eventParser: syncWord: AA,seqn: 10,len: 5,opcode: 0000,params: [80 04 00], check_sum: E2
    2023-03-06 14:34:07,130 INFO: Parser eventParser: event name: EVENT_ACK
    2023-03-06 14:34:07,130 INFO: Parser eventParser: event_id: [80 04]
    2023-03-06 14:34:07,130 INFO: Parser eventParser: status: [00]
    
    2023-03-06 16:44:30,416 INFO: input command: hfpag disconn_0
    2023-03-06 16:44:30,419 INFO: Parser cmdParser: cmd opcode: 0481 param: [00] name: CMD_HFP_AG_DISCONNECT_SCO
    2023-03-06 16:44:30,422 INFO: Packet sendPacket: <<<send packet: AA 1C 03 00 81 04 00 D7
    2023-03-06 16:44:30,426 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1C 05 00 00 00 81 04 00 D5
    2023-03-06 16:44:30,427 INFO: Parser eventParser: syncWord: AA,seqn: 1C,len: 5,opcode: 0000,params: [81 04 00], check_sum: D5
    2023-03-06 16:44:30,427 INFO: Parser eventParser: event name: EVENT_ACK
    2023-03-06 16:44:30,427 INFO: Parser eventParser: event_id: [81 04]
    2023-03-06 16:44:30,428 INFO: Parser eventParser: status: [00]
    

    If the phone supports outband ringtones, ACI Device 2 should perform the following operations when the phone receives a call:

  7. ACI Host CLI test (ACI Device 2): Make Headset play ring to simulate incoming call.

    2023-05-17 09:46:17,157 INFO: input command: hfpag call_incoming
    2023-05-17 09:46:17,158 INFO: Parser cmdParser: cmd opcode: 0482 param: [00 81] name: CMD_HFP_AG_CALL_INCOMING
    2023-05-17 09:46:17,159 INFO: Packet sendPacket: <<<send packet: AA 27 04 00 82 04 00 81 49
    2023-05-17 09:46:17,169 INFO: AciHostCLI continuously_read: >>>receive packet: AA 27 04 00 35 03 00 01 9C
    2023-05-17 09:46:17,172 INFO: Parser eventParser: syncWord: AA,seqn: 27,len: 4,opcode: 0335,params: [00 01], check_sum: 9C
    2023-05-17 09:46:17,174 INFO: Packet sendPacket: <<<send packet: AA 28 05 00 00 00 35 03 00 9B
    2023-05-17 09:46:17,184 INFO: AciHostCLI continuously_read: >>>receive packet: AA 28 05 00 00 00 82 04 00 C8
    2023-05-17 09:46:17,185 INFO: Parser eventParser: syncWord: AA,seqn: 28,len: 5,opcode: 0000,params: [82 04 00], check_sum: C8
    2023-05-17 09:46:17,186 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-17 09:46:17,186 INFO: Parser eventParser: event_id: [82 04]
    2023-05-17 09:46:17,186 INFO: Parser eventParser: status: [00]
    
  8. Pick up Phone call.

  9. ACI Host CLI test (ACI Device 2): Answer Phone call.

    2023-05-17 09:46:34,693 INFO: input command: hfpag call_answer
    2023-05-17 09:46:34,693 INFO: Parser cmdParser: cmd opcode: 0483 param: [00] name: CMD_HFP_AG_CALL_ANSWER
    2023-05-17 09:46:34,694 INFO: Packet sendPacket: <<<send packet: AA 29 03 00 83 04 00 C8
    2023-05-17 09:46:34,712 INFO: AciHostCLI continuously_read: >>>receive packet: AA 29 04 00 35 03 00 03 98
    2023-05-17 09:46:34,717 INFO: Parser eventParser: syncWord: AA,seqn: 29,len: 4,opcode: 0335,params: [00 03], check_sum: 98
    2023-05-17 09:46:34,719 INFO: Packet sendPacket: <<<send packet: AA 2A 05 00 00 00 35 03 00 99
    2023-05-17 09:46:34,728 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2A 05 00 00 00 83 04 00 C5
    2023-05-17 09:46:34,728 INFO: Parser eventParser: syncWord: AA,seqn: 2A,len: 5,opcode: 0000,params: [83 04 00], check_sum: C5
    2023-05-17 09:46:34,729 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-17 09:46:34,729 INFO: Parser eventParser: event_id: [83 04]
    2023-05-17 09:46:34,730 INFO: Parser eventParser: status: [00]
    2023-05-17 09:46:35,895 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2B 04 00 38 03 00 02 94
    2023-05-17 09:46:35,897 INFO: Parser eventParser: syncWord: AA,seqn: 2B,len: 4,opcode: 0338,params: [00 02], check_sum: 94
    2023-05-17 09:46:35,901 INFO: Packet sendPacket: <<<send packet: AA 2B 05 00 00 00 38 03 00 95
    2023-05-17 09:46:35,911 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2C 04 00 00 03 00 01 CC
    2023-05-17 09:46:35,912 INFO: Parser eventParser: syncWord: AA,seqn: 2C,len: 4,opcode: 0300,params: [00 01], check_sum: CC
    2023-05-17 09:46:35,913 INFO: Parser eventParser: event name: APP_EVENT_SCO_STATE
    2023-05-17 09:46:35,914 INFO: Parser eventParser: app_link_id: [00]
    2023-05-17 09:46:35,914 INFO: Parser eventParser: state: [01]
    2023-05-17 09:46:35,915 INFO: Packet sendPacket: <<<send packet: AA 2C 05 00 00 00 00 03 00 CC
    
  10. Hang up Phone call.

  11. ACI Host CLI test (ACI Device 2): Notify Headset that Phone call is terminated.

    2023-05-17 09:47:02,069 INFO: input command: hfpag call_terminate
    2023-05-17 09:47:02,069 INFO: Parser cmdParser: cmd opcode: 0484 param: [00] name: CMD_HFP_AG_CALL_TERMINATE
    2023-05-17 09:47:02,070 INFO: Packet sendPacket: <<<send packet: AA 2D 03 00 84 04 00 C3
    2023-05-17 09:47:02,076 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2D 04 00 35 03 00 00 97
    2023-05-17 09:47:02,077 INFO: Parser eventParser: syncWord: AA,seqn: 2D,len: 4,opcode: 0335,params: [00 00], check_sum: 97
    2023-05-17 09:47:02,082 INFO: Packet sendPacket: <<<send packet: AA 2E 05 00 00 00 35 03 00 95
    2023-05-17 09:47:02,091 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2E 05 00 00 00 84 04 00 C0
    2023-05-17 09:47:02,094 INFO: Parser eventParser: syncWord: AA,seqn: 2E,len: 5,opcode: 0000,params: [84 04 00], check_sum: C0
    2023-05-17 09:47:02,095 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-17 09:47:02,095 INFO: Parser eventParser: event_id: [84 04]
    2023-05-17 09:47:02,096 INFO: Parser eventParser: status: [00]
    

    If only host control is used, the following operations need to be performed:

  12. ACI Host CLI test (ACI Device 1): Answer call.

    2023-05-31 14:46:35,990 INFO: input command: mmi answer_call
    2023-05-31 14:46:35,990 INFO: Parser cmdParser: cmd opcode: 0004 param: [00 03] name: CMD_MMI
    2023-05-31 14:46:35,991 INFO: Packet sendPacket: <<<send packet: AA 01 04 00 04 00 00 03 F4
    2023-05-31 14:46:36,009 INFO: AciHostCLI continuously_read: >>>receive packet: AA 03 05 00 00 00 04 00 00 F4
    2023-05-31 14:46:36,011 INFO: Parser eventParser: syncWord: AA,seqn: 03,len: 5,opcode: 0000,params: [04 00 00], check_sum: F4
    2023-05-31 14:46:36,012 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-31 14:46:36,013 INFO: Parser eventParser: event_id: [04 00]
    2023-05-31 14:46:36,013 INFO: Parser eventParser: status: [00]
    
  13. ACI Host CLI test (ACI Device 1): Reject call.

    2023-05-31 16:06:51,592 INFO: input command: mmi reject_call
    2023-05-31 16:06:51,596 INFO: Parser cmdParser: cmd opcode: 0004 param: [00 04] name: CMD_MMI
    2023-05-31 16:06:51,598 INFO: Packet sendPacket: <<<send packet: AA 02 04 00 04 00 00 04 F2
    2023-05-31 16:06:51,613 INFO: AciHostCLI continuously_read: >>>receive packet: AA 04 05 00 00 00 04 00 00 F3
    2023-05-31 16:06:51,614 INFO: Parser eventParser: syncWord: AA,seqn: 04,len: 5,opcode: 0000,params: [04 00 00], check_sum: F3
    2023-05-31 16:06:51,615 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-31 16:06:51,615 INFO: Parser eventParser: event_id: [04 00]
    2023-05-31 16:06:51,616 INFO: Parser eventParser: status: [00]
    
  14. ACI Host CLI test (ACI Device 2): Mute MIC.

    2023-05-31 16:20:02,818 INFO: input command: hfpag mic_mute
    2023-05-31 16:20:02,819 INFO: Parser cmdParser: cmd opcode: 0488 param: [00 00] name: CMD_HFP_AG_MIC_GAIN_LEVEL_SET
    2023-05-31 16:20:02,819 INFO: Packet sendPacket: <<<send packet: AA 03 04 00 88 04 00 00 E8
    2023-05-31 16:20:02,827 INFO: AciHostCLI continuously_read: >>>receive packet: AA 05 05 00 00 00 88 04 00 E5
    2023-05-31 16:20:02,830 INFO: Parser eventParser: syncWord: AA,seqn: 05,len: 5,opcode: 0000,params: [88 04 00], check_sum: E5
    2023-05-31 16:20:02,831 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-31 16:20:02,832 INFO: Parser eventParser: event_id: [88 04]
    2023-05-31 16:20:02,832 INFO: Parser eventParser: status: [00]
    
  15. ACI Host CLI test (ACI Device 2): Unmute MIC.

    2023-05-31 16:21:04,073 INFO: input command: hfpag mic_unmute
    2023-05-31 16:21:04,073 INFO: Parser cmdParser: cmd opcode: 0488 param: [00 0A] name: CMD_HFP_AG_MIC_GAIN_LEVEL_SET
    2023-05-31 16:21:04,074 INFO: Packet sendPacket: <<<send packet: AA 04 04 00 88 04 00 0A DD
    2023-05-31 16:21:04,080 INFO: AciHostCLI continuously_read: >>>receive packet: AA 06 05 00 00 00 88 04 00 E4
    2023-05-31 16:21:04,082 INFO: Parser eventParser: syncWord: AA,seqn: 06,len: 5,opcode: 0000,params: [88 04 00], check_sum: E4
    2023-05-31 16:21:04,089 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-31 16:21:04,090 INFO: Parser eventParser: event_id: [88 04]
    2023-05-31 16:21:04,091 INFO: Parser eventParser: status: [00]
    
  16. ACI Host CLI test (ACI Device 2): SPK volume up.

    2023-05-31 17:09:29,143 INFO: input command: hfpag spk_vol_up
    2023-05-31 17:09:29,144 INFO: Parser cmdParser: cmd opcode: 0489 param: [00 0A] name: CMD_HFP_AG_SPEAKER_GAIN_LEVEL_SET
    2023-05-31 17:09:29,146 INFO: Packet sendPacket: <<<send packet: AA 05 04 00 89 04 00 0A DB
    2023-05-31 17:09:29,158 INFO: AciHostCLI continuously_read: >>>receive packet: AA 07 05 00 00 00 89 04 00 E2
    2023-05-31 17:09:29,159 INFO: Parser eventParser: syncWord: AA,seqn: 07,len: 5,opcode: 0000,params: [89 04 00], check_sum: E2
    2023-05-31 17:09:29,160 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-31 17:09:29,160 INFO: Parser eventParser: event_id: [89 04]
    2023-05-31 17:09:29,161 INFO: Parser eventParser: status: [00]
    
  17. ACI Host CLI test (ACI Device 2): SPK volume down.

    2023-05-31 17:10:32,765 INFO: input command: hfpag spk_vol_down
    2023-05-31 17:10:32,766 INFO: Parser cmdParser: cmd opcode: 0489 param: [00 00] name: CMD_HFP_AG_SPEAKER_GAIN_LEVEL_SET
    2023-05-31 17:10:32,767 INFO: Packet sendPacket: <<<send packet: AA 06 04 00 89 04 00 00 E4
    2023-05-31 17:10:32,780 INFO: AciHostCLI continuously_read: >>>receive packet: AA 08 05 00 00 00 89 04 00 E1
    2023-05-31 17:10:32,794 INFO: Parser eventParser: syncWord: AA,seqn: 08,len: 5,opcode: 0000,params: [89 04 00], check_sum: E1
    2023-05-31 17:10:32,795 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-31 17:10:32,795 INFO: Parser eventParser: event_id: [89 04]
    2023-05-31 17:10:32,796 INFO: Parser eventParser: status: [00]
    
  18. ACI Host CLI test (ACI Device 1): End call.

    2023-05-31 17:17:47,759 INFO: input command: mmi end_active_call
    2023-05-31 17:17:47,759 INFO: Parser cmdParser: cmd opcode: 0004 param: [00 05] name: CMD_MMI
    2023-05-31 17:17:47,760 INFO: Packet sendPacket: <<<send packet: AA 07 04 00 04 00 00 05 EC
    2023-05-31 17:17:47,774 INFO: AciHostCLI continuously_read: >>>receive packet: AA 09 05 00 00 00 04 00 00 EE
    2023-05-31 17:17:47,787 INFO: Parser eventParser: syncWord: AA,seqn: 09,len: 5,opcode: 0000,params: [04 00 00], check_sum: EE
    2023-05-31 17:17:47,787 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-05-31 17:17:47,788 INFO: Parser eventParser: event_id: [04 00]
    2023-05-31 17:17:47,788 INFO: Parser eventParser: status: [00]
    

Bluetooth Audio Transmitter MP3

This chapter introduces the functionality of the bt_audio_transmitter_mp3 application scenario. This functionality is enabled by opening the macro definition F_APP_BT_AUDIO_TRANSMITTER_MP3_DEMO_SUPPORT in app_flags.h. This chapter describes how to use these functions and the flow of how to test them, including the MSCs of the ACI Device and ACI Host interaction, and the commands used by ACI Host CLI Tool.

Music Play Function

The interactive process of music playing is analyzed in this chapter, the format of music playing is MP3.

Prerequisites

Music playing process:

../../../_images/bt_audio_trx_music_play_seq.png

Music Play

  1. ACI Host CLI test: Session open.

    The ACI Host sends CMD_XM_MUSIC command with MUSIC_SESSION_OPEN to start the music-playing process. The ACI Host CLI CMD for starting music playing is music open, the corresponding UART CMD packet and tool log are as follows.

    ACI Host CLI CMD for Music Open

    Command

    Parameters

    ACI Host CLI CMD

    CMD_XM_MUSIC = 0x8080

    type = MUSIC_SESSION_OPEN(0), seq = 0

    music open

    2023-01-12 14:08:20,013 INFO: input command: music open
    2023-01-12 14:08:20,014 INFO: Parser cmdParser: cmd opcode: 8080 param: [00 00] name: CMD_XM_MUSIC
    2023-01-12 14:08:20,014 INFO: Packet sendPacket: <<<send packet: AA 04 04 00 80 80 00 00 73
    2023-01-12 14:08:20,026 INFO: AciHostCLI continuously_read: >>>receive packet: AA 04 05 00 00 00 80 80 00 72
    2023-01-12 14:08:20,027 INFO: Parser eventParser: syncWord: AA,seqn: 04,len: 5,opcode: 0000,params: [80 80 00], check_sum: 72
    2023-01-12 14:08:20,028 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-01-12 14:08:20,029 INFO: Parser eventParser: event_id: [80 80]
    2023-01-12 14:08:20,030 INFO: Parser eventParser: status: [00]
    
  2. ACI Host CLI test: Session send frame.

    ACI Device requests the first music data frame through EVENT_XM_MUSIC_REQ_FRAME. Afterward, ACI Device will continue to request music data frames through EVENT_APP_EVENT_ACK(0x0000) with status CMD_SET_STATUS_MUSIC_REQ(8).

    2023-01-12 14:08:20,030 INFO: AciHostCLI continuously_read: >>>receive packet: AA 05 02 00 00 85 74
    2023-01-12 14:08:20,031 INFO: Parser eventParser: syncWord: AA,seqn: 05,len: 2,opcode: 8500,params: [], check_sum: 74
    2023-01-12 14:08:20,031 INFO: Parser eventParser: event name: EVENT_XM_MUSIC_REQ_FRAME
    2023-01-12 14:08:20,032 INFO: Packet sendPacket: <<<send packet: AA 05 05 00 00 00 00 85 00 71
    2023-01-12 14:08:20,032 INFO: Music get_data: 00000000: 49 44 33 03 00 00 00 00 00 52 54 50 45 32 00 00 00 07 00 00 00 A4 FD A4 4F A7 BB 54 49 54 32 00
    2023-01-12 14:08:20,033 INFO: Parser cmdParser: cmd opcode: 8080 param: [05 00 49 44 33 03 00 00 00 00 00 52 54 50 45 32 00 00 00 07 00 00 00 A4 FD A4 4F A7 BB 54 49 54] name: CMD_XM_MUSIC
    2023-01-12 14:08:20,036 INFO: Packet sendPacket: <<<send packet: AA 06 04 02 00 85 05 00 49 44 33 03 00 00 00 00 00 52 54 50 45 32 00 00 00 07 00 00 00 A4 FD A4
    2023-01-12 14:08:20,042 INFO: AciHostCLI continuously_read: >>>receive packet: AA 06 05 00 00 00 00 80 80 68
    2023-01-12 14:08:20,043 INFO: Parser eventParser: syncWord: AA,seqn: 06,len: 5,opcode: 0000,params: [80 80 08], check_sum: 68
    2023-01-12 14:08:20,043 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-01-12 14:08:20,044 INFO: Parser eventParser: event_id: [80 80]
    2023-01-12 14:08:20,044 INFO: Parser eventParser: status: [08]
    
  3. ACI Host CLI test: Session close.

    The ACI Host sends Session Close to end the music playing process normally. The ACI Host CLI CMD for stopping music playing is music close, the corresponding UART CMD packet and tool log are as follows.

    ACI Host CLI CMD for Music Close

    Command

    Parameters

    ACI Host CLI CMD

    CMD_XM_MUSIC = 0x8080

    type = MUSIC_SESSION_CLOSE(4), seq = 0

    music close

    2023-01-12 14:19:04,386 INFO: Parser cmdParser: cmd opcode: 8080 param: [04 00] name: CMD_XM_MUSIC
    2023-01-12 14:19:04,386 INFO: Packet sendPacket: <<<send packet: AA 90 04 00 80 80 04 00 E3
    2023-01-12 14:19:04,398 INFO: AciHostCLI continuously_read: >>>receive packet: AA 3F 05 00 00 00 80 80 00 37
    2023-01-12 14:19:04,399 INFO: Parser eventParser: syncWord: AA,seqn: 3F,len: 5,opcode: 0000,params: [80 80 00], check_sum: 37
    2023-01-12 14:19:04,400 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-01-12 14:19:04,400 INFO: Parser eventParser: event_id: [80 80]
    2023-01-12 14:19:04,400 INFO: Parser eventParser: status: [00]
    
  4. ACI Host CLI test: Session abort.

    If the ACK status is not CMD_SET_STATUS_COMPLETE(0) or CMD_SET_STATUS_MUSIC_REQ(8) during playback, the ACI Host will send Session Abort to stop the music playing process immediately. The ACI Host CLI CMD for stopping music playing is music abort, the corresponding UART CMD packet and tool log are as follows.

    ACI Host CLI CMD for Music Abort

    Command

    Parameters

    ACI Host CLI CMD

    CMD_XM_MUSIC = 0x8080

    type = MUSIC_SESSION_ABORT(3), seq = 0

    music abort

    2023-01-12 14:24:17,764 INFO: input command: music abort
    2023-01-12 14:24:17,765 INFO: Parser cmdParser: cmd opcode: 8080 param: [03 00] name: CMD_XM_MUSIC
    2023-01-12 14:24:17,765 INFO: Packet sendPacket: <<<send packet: AA 31 04 00 00 85 03 00 43
    2023-01-12 14:24:17,774 INFO: AciHostCLI continuously_read: >>>receive packet: AA 71 0A 00 0B 00 00 00 00 00 00 00 00 00 7A
    2023-01-12 14:24:17,774 INFO: Parser eventParser: syncWord: AA,seqn: 71,len: 10,opcode: 000B,params: [00 00 00 00 00 00 00 00], check_sum: 7A
    2023-01-12 14:24:17,775 INFO: Parser eventParser: event name: EVENT_PLAYER_STATUS
    2023-01-12 14:24:17,775 INFO: Parser eventParser: bd_addr: [00 00 00 00 00 00]
    2023-01-12 14:24:17,775 INFO: Parser eventParser: play_status: [00]
    2023-01-12 14:24:17,776 INFO: Parser eventParser: play_mode: [00]
    2023-01-12 14:24:17,776 INFO: Packet sendPacket: <<<send packet: AA 32 05 00 00 00 0B 00 00 BE
    2023-01-12 14:24:17,790 INFO: AciHostCLI continuously_read: >>>receive packet: AA 72 05 00 00 00 00 85 00 04
    2023-01-12 14:24:17,790 INFO: Parser eventParser: syncWord: AA,seqn: 72,len: 5,opcode: 0000,params: [00 85 00], check_sum: 04
    2023-01-12 14:24:17,791 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-01-12 14:24:17,791 INFO: Parser eventParser: event_id: [00 85]
    2023-01-12 14:24:17,791 INFO: Parser eventParser: status: [00]
    
ACI Host CLI Test (Music)

The played music directory is tool\AciHostCLI-Common_SDK\music.

Local Playback
ACI Host CLI CMD for Local Playback

Command

Parameters

ACI Host CLI CMD

Description

CMD_XM_MMI = 0x8004

action = XM_MMI_MODE_LOCAL_PLAY(1)

xmmi local

Switch to local playback mode for music play.

  1. Connect and configure a SPK to EVB.

  2. ACI Host CLI test: Enter local playback mode.

    Input xmmi local.

    2023-04-23 18:48:59,335 INFO: input command: xmmi local
    2023-04-23 18:48:59,337 INFO: Parser cmdParser: cmd opcode: 8004 param: [01] name: CMD_XM_MMI
    2023-04-23 18:48:59,338 INFO: Packet sendPacket: <<<send packet: AA 01 03 00 04 80 01 77
    2023-04-23 18:48:59,342 INFO: AciHostCLI continuously_read: >>>receive packet: AA 57 05 00 00 00 04 80 00 20
    2023-04-23 18:48:59,355 INFO: Parser eventParser: syncWord: AA,seqn: 57,len: 5,opcode: 0000,params: [04 80 00], check_sum: 20
    2023-04-23 18:48:59,357 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-23 18:48:59,360 INFO: Parser eventParser: event_id: [04 80]
    2023-04-23 18:48:59,367 INFO: Parser eventParser: status: [00]
    
  3. ACI Host CLI test: Music open.

    Input music open, then the played music can be heard from SPK.

  4. ACI Host CLI test: Music close.

    Input music close, then the played music will be stopped.

A2DP Source Playback
ACI Host CLI CMD for A2DP Source Playback

Command

Parameters

ACI Host CLI CMD

Description

CMD_XM_MMI = 0x8004

action = XM_MMI_MODE_A2DP_SOURCE(2)

xmmi source

Switch to A2DP Source mode for music play.

  1. ACI Host CLI test: Connect ACI Device to BUD.

    Please refer to Connect to BUD.

  2. ACI Host CLI test: Enter A2DP Source playback mode.

    Input xmmi source.

    2023-04-23 18:50:20,276 INFO: input command: xmmi source
    2023-04-23 18:50:20,278 INFO: Parser cmdParser: cmd opcode: 8004 param: [02] name: CMD_XM_MMI
    2023-04-23 18:50:20,280 INFO: Packet sendPacket: <<<send packet: AA 02 03 00 04 80 02 75
    2023-04-23 18:50:20,281 INFO: AciHostCLI continuously_read: >>>receive packet: AA 58 05 00 00 00 04 80 00 1F
    2023-04-23 18:50:20,301 INFO: Parser eventParser: syncWord: AA,seqn: 58,len: 5,opcode: 0000,params: [04 80 00], check_sum: 1F
    2023-04-23 18:50:20,316 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-04-23 18:50:20,323 INFO: Parser eventParser: event_id: [04 80]
    2023-04-23 18:50:20,326 INFO: Parser eventParser: status: [00]
    
  3. ACI Host CLI test: Music open.

    Input music open, then the played music can be heard from BUD.

  4. ACI Host CLI test: Music close.

    Input music close, then the played music will be stopped.

Bluetooth Audio Integrated Transceiver

This chapter introduces the functionality of the bt_audio_integrated_transceiver application scenario. This functionality is enabled by opening the macro definition F_APP_BT_AUDIO_TRANSCEIVER_DEMO_SUPPORT and F_APP_INTEGRATED_TRANSCEIVER in app_flags.h. This chapter describes how to use these functions and the flow of how to test them, including the MSCs of the ACI Device and ACI Host interaction, and the commands used by ACI Host CLI Tool.

A2DP Integrated Transceiver Transmission (A2DP Output)

Two typical transmit scenarios are introduced at the beginning of the article. Based on the A2DP transmission, A2DP data can be transferred from the Phone, through ACI Device to the Headset.

A2DP integrated transceiver transmission process:

../../../_images/bt_audio_trx_single_chip_a2dp_transfer.png

A2DP Integrated Transceiver Transmission

Before using the function, please configure the link numbers by clicking System Configuration ‣ BR/EDR link number by MCUConfig Tool.

../../../_images/bt_audio_trx_inter_trans_config_1.png

System Configuration 1

../../../_images/bt_audio_trx_inter_trans_config_2.png

System Configuration 2

ACI Host CLI Test: Integrated Transceiver (A2DP Output)

The ACI Host sends CMD_SRC_PLAY_SET_SRC_ROUTE to ACI Device to set the A2DP input route, sends CMD_SRC_PLAY_SET_PLAY_ROUTE to set A2DP output route, sends CMD_SRC_PLAY_ROUTE_IN_START/STOP to start or stop the A2DP input route, and sends CMD_SRC_PLAY_ROUTE_OUT_START/STOP to start or stop the A2DP output route.

ACI Host CLI CMD for A2DP Integrated Transceiver Transmission

Command

Parameters

ACI Host CLI CMD

CMD_SRC_PLAY_SET_SRC_ROUTE(0x3300)

action = a2dp(0x07, 0x00)

set_route_in a2dp

CMD_SRC_PLAY_SET_PLAY_ROUTE(0x3302)

action = a2dp(0x01)

set_route_out a2dp

CMD_SRC_PLAY_ROUTE_IN_START(0x3304)

None

route_in start

CMD_SRC_PLAY_ROUTE_IN_STOP(0x3305)

None

route_in stop

CMD_SRC_PLAY_ROUTE_OUT_START(0x3306)

None

route_out start

CMD_SRC_PLAY_ROUTE_OUT_STOP(0x3307)

None

route_out stop

  1. ACI Host CLI test: Connect ACI Device to Phone.

    Please refer to Connect to Phone.

  2. ACI Host CLI test: Connect ACI Device to BUD.

    Please refer to Connect to BUD.

  3. ACI Host CLI test: Input set_route_in a2dp.

    2024-10-30 14:43:09,715 INFO:  input command: set_route_in a2dp
    2024-10-30 14:43:09,716 INFO: Parser cmdParser: cmd opcode: 3300 param: [07 00] name: CMD_SRC_PLAY_SET_SRC_ROUTE
    2024-10-30 14:43:09,716 INFO: Packet sendPacket: <<<send packet: AA 54 04 00 00 33 07 00 6E
    2024-10-30 14:43:09,788 WARNING: AciHostCLI retrans: retransmit command set_route_in a2dp due to ack timeout! retry: 1
    2024-10-30 14:43:09,789 INFO: Packet sendPacket: <<<send packet: AA 54 04 00 00 33 07 00 6E
    2024-10-30 14:43:09,803 INFO: AciHostCLI continuously_read: >>>receive packet: AA 4A 05 00 00 00 00 33 00 7E
    2024-10-30 14:43:09,804 INFO: Parser eventParser: syncWord: AA,seqn: 4A,len: 5,opcode: 0000,params: [00 33 00], check_sum: 7E
    2024-10-30 14:43:09,804 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-10-30 14:43:09,805 INFO: Parser eventParser: event_id: [00 33]
    2024-10-30 14:43:09,805 INFO: Parser eventParser: status: [00]
    
  4. ACI Host CLI test: Input set_route_out a2dp.

    2024-10-30 14:43:14,178 INFO:  input command: set_route_out a2dp
    2024-10-30 14:43:14,179 INFO: Parser cmdParser: cmd opcode: 3302 param: [01] name: CMD_SRC_PLAY_SET_PLAY_ROUTE
    2024-10-30 14:43:14,179 INFO: Packet sendPacket: <<<send packet: AA 55 03 00 02 33 01 72
    2024-10-30 14:43:14,250 WARNING: AciHostCLI retrans: retransmit command set_route_out a2dp due to ack timeout! retry: 1
    2024-10-30 14:43:14,251 INFO: Packet sendPacket: <<<send packet: AA 55 03 00 02 33 01 72
    2024-10-30 14:43:14,260 INFO: AciHostCLI continuously_read: >>>receive packet: AA 4B 05 00 00 00 02 33 00 7B
    2024-10-30 14:43:14,261 INFO: Parser eventParser: syncWord: AA,seqn: 4B,len: 5,opcode: 0000,params: [02 33 00], check_sum: 7B
    2024-10-30 14:43:14,261 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-10-30 14:43:14,261 INFO: Parser eventParser: event_id: [02 33]
    2024-10-30 14:43:14,261 INFO: Parser eventParser: status: [00]
    
  5. Play music on Phone, then ACI Host will receive APP_EVENT_AVRCP_PLAYER_STATUS and EVENT_TRACK_CHANGED.

    2024-10-30 14:43:33,319 INFO: AciHostCLI continuously_read: >>>receive packet: AA 4C 0A 00 0B 00 41 AF 7B 6C 32 20 01 00 75
    2024-10-30 14:43:33,320 INFO: Parser eventParser: syncWord: AA,seqn: 4C,len: 10,opcode: 000B,params: [41 AF 7B 6C 32 20 01 00], check_sum: 75
    2024-10-30 14:43:33,320 INFO: Parser eventParser: event name: APP_EVENT_AVRCP_PLAYER_STATUS
    2024-10-30 14:43:33,320 INFO: Parser eventParser: bd_addr: [41 AF 7B 6C 32 20]
    2024-10-30 14:43:33,322 INFO: Parser eventParser: play_status: [01]
    2024-10-30 14:43:33,322 INFO: Parser eventParser: play_mode: [00]
    2024-10-30 14:43:33,323 INFO: Packet sendPacket: <<<send packet: AA 56 05 00 00 00 0B 00 00 9A
    2024-10-30 14:43:33,335 INFO: AciHostCLI continuously_read: >>>receive packet: AA 4D 10 00 21 00 41 AF 7B 6C 32 20 00 00 00 00 00 00 00 00 59
    2024-10-30 14:43:33,336 INFO: Parser eventParser: syncWord: AA,seqn: 4D,len: 16,opcode: 0021,params: [41 AF 7B 6C 32 20 00 00 00 00 00 00 00 00], check_sum: 59
    2024-10-30 14:43:33,336 INFO: Parser eventParser: event name: EVENT_TRACK_CHANGED
    2024-10-30 14:43:33,337 INFO: Packet sendPacket: <<<send packet: AA 57 05 00 00 00 21 00 00 83
    
  6. ACI Host CLI test: Input route_out start.

    2024-10-30 14:43:38,276 INFO:  input command: route_out start
    2024-10-30 14:43:38,276 INFO: Parser cmdParser: cmd opcode: 3306 param: [] name: CMD_SRC_PLAY_ROUTE_OUT_START
    2024-10-30 14:43:38,277 INFO: Packet sendPacket: <<<send packet: AA 58 02 00 06 33 6D
    2024-10-30 14:43:38,287 INFO: AciHostCLI continuously_read: >>>receive packet: AA 4E 05 00 00 00 06 33 00 74
    2024-10-30 14:43:38,288 INFO: Parser eventParser: syncWord: AA,seqn: 4E,len: 5,opcode: 0000,params: [06 33 00], check_sum: 74
    2024-10-30 14:43:38,288 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-10-30 14:43:38,288 INFO: Parser eventParser: event_id: [06 33]
    2024-10-30 14:43:38,288 INFO: Parser eventParser: status: [00]
    
  7. ACI Host CLI test: Input route_in start.

    2024-10-30 14:43:40,239 INFO:  input command: route_in start
    2024-10-30 14:43:40,240 INFO: Parser cmdParser: cmd opcode: 3304 param: [] name: CMD_SRC_PLAY_ROUTE_IN_START
    2024-10-30 14:43:40,240 INFO: Packet sendPacket: <<<send packet: AA 59 02 00 04 33 6E
    2024-10-30 14:43:40,252 INFO: AciHostCLI continuously_read: >>>receive packet: AA 4F 05 00 00 00 04 33 00 75
    2024-10-30 14:43:40,253 INFO: Parser eventParser: syncWord: AA,seqn: 4F,len: 5,opcode: 0000,params: [04 33 00], check_sum: 75
    2024-10-30 14:43:40,253 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-10-30 14:43:40,253 INFO: Parser eventParser: event_id: [04 33]
    2024-10-30 14:43:40,254 INFO: Parser eventParser: status: [00]
    

HFP Integrated Transceiver Transmission

Based on the HFP transmission, SCO data can be transferred from the Phone, through ACI Device to the Headset. HFP integrated transceiver transmission process:

../../../_images/bt_audio_trx_single_chip_hfp_transfer.png

HFP Integrated Transceiver Transmission

ACI Host CLI Test: Integrated Transceiver (HFP Output)

ACI Host sends CMD_HFP_AG_CONNECT_SCO to ACI Device to connect the SCO link between ACI Device and Headset to send data. ACI Host sends CMD_HFP_AG_DISCONNECT_SCO to ACI Device to disconnect the SCO link between ACI Device and the Headset. ACI Host CLI commands are hfpag conn and hfpag disconn. Before using the function, inquiry and page scan should be set as disable. Since there are two SCO links in this scenario, CMD_SRC_PLAY_SET_MULTI_ESCO is used to support the coexistence of two links.

ACI Host CLI CMD for HFP Integrated Transceiver Transmission

Command

Parameters

ACI Host CLI CMD

CMD_HFP_AG_CONNECT_SCO(0x0480)

action = SCO_CONNECT(0x01)

hfpag conn_1

CMD_HFP_AG_DISCONNECT_SCO(0x0481)

action = SCO_DISCONNECT(0x01)

hfpag disconn_1

CMD_SRC_PLAY_SET_MULTI_ESCO(0x3310)

action = Active(0x01, 0x02)

set_multi_esco active

CMD_XM_SET_MODE = 0x0030

device_mode = BT_DEVICE_MODE_IDLE(0)

mode idle

  1. ACI Host CLI test: Connect ACI Device to Phone.

    Please refer to Connect to Phone.

  2. ACI Host CLI test: Connect ACI Device to BUD.

    Please refer to Connect to BUD.

  3. ACI Host CLI test: Disable inquiry scan and page scan.

    2024-10-31 11:18:32,485 INFO:  input command: mode idle
    2024-10-31 11:18:32,486 INFO: Parser cmdParser: cmd opcode: 0030 param: [00] name: CMD_XM_SET_MODE
    2024-10-31 11:18:32,486 INFO: Packet sendPacket: <<<send packet: AA 1D 03 00 30 00 00 B0
    2024-10-31 11:18:32,495 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1C 05 00 00 00 30 00 00 AF
    2024-10-31 11:18:32,496 INFO: Parser eventParser: syncWord: AA,seqn: 1C,len: 5,opcode: 0000,params: [30 00 00], check_sum: AF
    2024-10-31 11:18:32,497 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-10-31 11:18:32,497 INFO: Parser eventParser: event_id: [30 00]
    2024-10-31 11:18:32,497 INFO: Parser eventParser: status: [00]
    
  4. ACI Host CLI test: Set multilink SCO active.

    2024-10-31 11:18:42,533 INFO:  input command: set_multi_esco active
    2024-10-31 11:18:42,534 INFO: Parser cmdParser: cmd opcode: 3310 param: [01 02] name: CMD_SRC_PLAY_SET_MULTI_ESCO
    2024-10-31 11:18:42,534 INFO: Packet sendPacket: <<<send packet: AA 1E 04 00 10 33 01 02 98
    2024-10-31 11:18:42,623 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1D 05 00 00 00 10 33 00 9B
    2024-10-31 11:18:42,624 INFO: Parser eventParser: syncWord: AA,seqn: 1D,len: 5,opcode: 0000,params: [10 33 00], check_sum: 9B
    2024-10-31 11:18:42,624 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-10-31 11:18:42,624 INFO: Parser eventParser: event_id: [10 33]
    2024-10-31 11:18:42,625 INFO: Parser eventParser: status: [00]
    
  5. Call the Phone connected to ACI Device.

    2024-10-31 11:18:52,144 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1E 04 00 0A 00 00 02 D2
    2024-10-31 11:18:52,144 INFO: Parser eventParser: syncWord: AA,seqn: 1E,len: 4,opcode: 000A,params: [00 02], check_sum: D2
    2024-10-31 11:18:52,147 INFO: Parser eventParser: event name: APP_EVENT_HFP_CALL_STATUS
    2024-10-31 11:18:52,148 INFO: Parser eventParser: link_id: [00]
    2024-10-31 11:18:52,148 INFO: Parser eventParser: status: [02]
    2024-10-31 11:18:52,149 INFO: Packet sendPacket: <<<send packet: AA 1F 05 00 00 00 0A 00 00 D2
    2024-10-31 11:18:53,646 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1F 1D 00 07 04 00 01 01 04 00 00 81 31 35 39 36 32 31 37 33 35 38 30 00 00 00 00 00 00 00 00
    2024-10-31 11:18:53,646 INFO: Parser eventParser: syncWord: AA,seqn: 1F,len: 29,opcode: 0407,params: [00 01 01 04 00 00 81 31 35 39 36 32 31 37 33 35 38 30 00 00 00 00 00 00 00 00 00], check_sum: F3
    2024-10-31 11:18:53,648 INFO: Parser eventParser: event name: EVENT_CURRENT_CALLS
    2024-10-31 11:18:53,649 INFO: Packet sendPacket: <<<send packet: AA 20 05 00 00 00 07 04 00 D0
    2024-10-31 11:18:53,805 INFO: AciHostCLI continuously_read: >>>receive packet: AA 20 04 00 00 04 00 02 D6
    2024-10-31 11:18:53,806 INFO: Parser eventParser: syncWord: AA,seqn: 20,len: 4,opcode: 0400,params: [00 02], check_sum: D6
    2024-10-31 11:18:53,806 INFO: Parser eventParser: event name: APP_EVENT_SCO_STATE
    2024-10-31 11:18:53,807 INFO: Parser eventParser: link_id: [00]
    2024-10-31 11:18:53,808 INFO: Parser eventParser: state: [02]
    2024-10-31 11:18:53,809 INFO: Packet sendPacket: <<<send packet: AA 21 05 00 00 00 00 04 00 D6
    2024-10-31 11:18:53,821 INFO: AciHostCLI continuously_read: >>>receive packet: AA 21 04 00 00 04 00 01 D6
    2024-10-31 11:18:53,821 INFO: Parser eventParser: syncWord: AA,seqn: 21,len: 4,opcode: 0400,params: [00 01], check_sum: D6
    2024-10-31 11:18:53,822 INFO: Parser eventParser: event name: APP_EVENT_SCO_STATE
    2024-10-31 11:18:53,822 INFO: Parser eventParser: link_id: [00]
    2024-10-31 11:18:53,822 INFO: Parser eventParser: state: [01]
    
  6. ACI Host CLI test: Connect the SCO link between ACI Device and Headset.

    2024-10-31 11:19:01,258 INFO:  input command: hfpag conn_1
    2024-10-31 11:19:01,258 INFO: Parser cmdParser: cmd opcode: 0480 param: [01] name: CMD_HFP_AG_CONNECT_SCO
    2024-10-31 11:19:01,259 INFO: Packet sendPacket: <<<send packet: AA 2A 03 00 80 04 01 4E
    2024-10-31 11:19:01,266 INFO: AciHostCLI continuously_read: >>>receive packet: AA 27 05 00 00 00 80 04 00 50
    2024-10-31 11:19:01,272 INFO: Parser eventParser: syncWord: AA,seqn: 27,len: 5,opcode: 0000,params: [80 04 00], check_sum: 50
    2024-10-31 11:19:01,275 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-10-31 11:19:01,276 INFO: Parser eventParser: event_id: [80 04]
    2024-10-31 11:19:01,276 INFO: Parser eventParser: status: [00]
    2024-10-31 11:19:01,458 INFO: AciHostCLI continuously_read: >>>receive packet: AA 28 04 00 88 03 01 02 46
    2024-10-31 11:19:01,458 INFO: Parser eventParser: syncWord: AA,seqn: 28,len: 4,opcode: 0388,params: [01 02], check_sum: 46
    2024-10-31 11:19:01,459 INFO: Packet sendPacket: <<<send packet: AA 2B 05 00 00 00 88 03 00 45
    2024-10-31 11:19:01,474 INFO: AciHostCLI continuously_read: >>>receive packet: AA 29 04 00 00 04 01 01 CD
    2024-10-31 11:19:01,474 INFO: Parser eventParser: syncWord: AA,seqn: 29,len: 4,opcode: 0400,params: [01 01], check_sum: CD
    2024-10-31 11:19:01,476 INFO: Parser eventParser: event name: APP_EVENT_SCO_STATE
    2024-10-31 11:19:01,476 INFO: Parser eventParser: link_id: [01]
    2024-10-31 11:19:01,477 INFO: Parser eventParser: state: [01]
    2024-10-31 11:19:01,477 INFO: Packet sendPacket: <<<send packet: AA 2C 05 00 00 00 00 04 00 CB
    
  7. Hang up Phone call.

    2024-10-31 11:19:09,365 INFO: AciHostCLI continuously_read: >>>receive packet: AA 2F 1D 00 07 04 00 01 01 00 00 00 81 31 35 39 36 32 31 37 33 35 38 30 00 00 00 00 00 00 00 00
    2024-10-31 11:19:09,366 INFO: Parser eventParser: syncWord: AA,seqn: 2F,len: 29,opcode: 0407,params: [00 01 01 00 00 00 81 31 35 39 36 32 31 37 33 35 38 30 00 00 00 00 00 00 00 00 00], check_sum: E7
    2024-10-31 11:19:09,368 INFO: Parser eventParser: event name: EVENT_CURRENT_CALLS
    2024-10-31 11:19:09,371 INFO: Packet sendPacket: <<<send packet: AA 32 05 00 00 00 07 04 00 BE
    2024-10-31 11:19:10,435 INFO: AciHostCLI continuously_read: >>>receive packet: AA 30 04 00 00 04 00 00 C8
    2024-10-31 11:19:10,436 INFO: Parser eventParser: syncWord: AA,seqn: 30,len: 4,opcode: 0400,params: [00 00], check_sum: C8
    2024-10-31 11:19:10,436 INFO: Parser eventParser: event name: APP_EVENT_SCO_STATE
    2024-10-31 11:19:10,437 INFO: Parser eventParser: link_id: [00]
    2024-10-31 11:19:10,438 INFO: Parser eventParser: state: [00]
    2024-10-31 11:19:10,438 INFO: Packet sendPacket: <<<send packet: AA 33 05 00 00 00 00 04 00 C4
    2024-10-31 11:19:10,564 INFO: AciHostCLI continuously_read: >>>receive packet: AA 31 04 00 0A 00 00 00 C1
    2024-10-31 11:19:10,564 INFO: Parser eventParser: syncWord: AA,seqn: 31,len: 4,opcode: 000A,params: [00 00], check_sum: C1
    2024-10-31 11:19:10,572 INFO: Parser eventParser: event name: APP_EVENT_HFP_CALL_STATUS
    2024-10-31 11:19:10,572 INFO: Parser eventParser: link_id: [00]
    2024-10-31 11:19:10,573 INFO: Parser eventParser: status: [00]
    2024-10-31 11:19:10,574 INFO: Packet sendPacket: <<<send packet: AA 34 05 00 00 00 0A 00 00 BD
    
  8. ACI Host CLI test: Disconnect the SCO link between ACI Device and Headset.

    2024-10-31 11:19:16,368 INFO:  input command: hfpag disconn_1
    2024-10-31 11:19:16,368 INFO: Parser cmdParser: cmd opcode: 0481 param: [01] name: CMD_HFP_AG_DISCONNECT_SCO
    2024-10-31 11:19:16,369 INFO: Packet sendPacket: <<<send packet: AA 35 03 00 81 04 01 42
    2024-10-31 11:19:16,403 INFO: AciHostCLI continuously_read: >>>receive packet: AA 32 05 00 00 00 81 04 00 44
    2024-10-31 11:19:16,406 INFO: Parser eventParser: syncWord: AA,seqn: 32,len: 5,opcode: 0000,params: [81 04 00], check_sum: 44
    2024-10-31 11:19:16,409 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2024-10-31 11:19:16,409 INFO: Parser eventParser: event_id: [81 04]
    2024-10-31 11:19:16,410 INFO: Parser eventParser: status: [00]
    2024-10-31 11:19:16,442 INFO: AciHostCLI continuously_read: >>>receive packet: AA 33 04 00 00 04 01 00 C4
    2024-10-31 11:19:16,443 INFO: Parser eventParser: syncWord: AA,seqn: 33,len: 4,opcode: 0400,params: [01 00], check_sum: C4
    2024-10-31 11:19:16,443 INFO: Parser eventParser: event name: APP_EVENT_SCO_STATE
    2024-10-31 11:19:16,444 INFO: Parser eventParser: link_id: [01]
    2024-10-31 11:19:16,444 INFO: Parser eventParser: state: [00]
    2024-10-31 11:19:16,445 INFO: Packet sendPacket: <<<send packet: AA 36 05 00 00 00 00 04 00 C1
    

UART DFU

Introduction

DFU (Device Firmware Upgrade) function allows for seamless firmware updates. Bluetooth Audio Transceiver has incorporated a comprehensive DFU system based on UART. This system enables users to upgrade devices effortlessly through the utilization of the ACI Host CLI Tool. By placing the designated upgrade package into a specified folder and configuring the file name and version number, users can execute the device update with a single command.

Prepare the Upgrade Package

In order to perform a DFU process, it is necessary to prepare an upgrade package. The creation of the upgrade package can be accomplished using the MPPG Tool. This involves two main steps:

  1. Generating the OTA header image. During this process, please ensure the appropriate version number is filled in (This version number will later need to be entered in the config.yml file in ACI Host CLI Tool). For detailed instructions, refer to Prepare the Image to Update.

  2. Packing the generated OTA header image with other images to be upgraded. For detailed instructions, refer to Pack Whole Image.

Once the upgrade package is prepared, place it in the sdk\tool\AciHostCLI-v1.x.x.xx-Common_SDK\dfu folder. Then, open the config.yml file and fill in the upgrade package’s file name and version number.

../../../_images/bt_audio_trx_uart_dfu_file.png

Upgrade Package Configuration

Upon completing the aforementioned steps, simply enter the command dfu start in the ACI Host to initiate the upgrade process for your device.

ACI Host CLI Test: UART DFU

The ACI Host sends CMD_UART_DFU with various opcodes to execute specific functions. This includes using the UART_DFU_START_REQ opcode to initiate the DFU, the UART_DFU_DATA_IND opcode to transmit data packets, the UART_DFU_REBOOT opcode to reboot the device, and the UART_DFU_ABORT opcode to terminate the DFU. The device side sends the EVENT_DFU_START_RSP event to confirm the initiation of the DFU, the EVENT_DFU_DATA_REQ event to request data packets, and the EVENT_DFU_RESULT event to notify the ACI Host of the upgrade result.

ACI Host CLI CMD for UART DFU

Command

Parameters

ACI Host CLI CMD

CMD_UART_DFU(0x3270)

opcode = UART_DFU_START_REQ(0x0000)

dfu start

CMD_UART_DFU(0x3270)

opcode = UART_DFU_DATA_IND(0x0001)

None

CMD_UART_DFU(0x3270)

opcode = UART_DFU_ABORT(0x0002)

dfu abort

CMD_UART_DFU(0x3270)

opcode = UART_DFU_REBOOT(0x0003)

None

  1. ACI Host CLI test: Start DFU.

    2023-10-27 17:51:21,440 INFO: input command: dfu start
    2023-10-27 17:51:21,573 INFO: DFU open: file_size 2434320
    2023-10-27 17:51:21,574 INFO: Parser cmdParser: cmd opcode: 3270 param: [00 00 02 00 00 00] name: CMD_UART_DFU
    2023-10-27 17:51:21,575 INFO: Packet sendPacket: <<<send packet: AA 06 08 00 70 32 00 00 02 00 00 00 4E
    2023-10-27 17:51:21,647 WARNING: AciHostCLI retrans: retransmit command dfu start due to ack timeout! retry: 1
    2023-10-27 17:51:21,648 INFO: Packet sendPacket: <<<send packet: AA 06 08 00 70 32 00 00 02 00 00 00 4E
    2023-10-27 17:51:21,660 INFO: AciHostCLI continuously_read: >>>receive packet: AA 04 05 00 00 00 70 32 00 55
    2023-10-27 17:51:21,661 INFO: Parser eventParser: syncWord: AA,seqn: 04,len: 5,opcode: 0000,params: [70 32 00], check_sum: 55
    2023-10-27 17:51:21,661 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-10-27 17:51:21,662 INFO: Parser eventParser: event_id: [70 32]
    2023-10-27 17:51:21,663 INFO: Parser eventParser: status: [00]
    2023-10-27 17:51:21,663 INFO: AciHostCLI continuously_read: >>>receive packet: AA 05 03 00 60 31 01 66
    2023-10-27 17:51:21,664 INFO: Parser eventParser: syncWord: AA,seqn: 05,len: 3,opcode: 3160,params: [01], check_sum: 66
    2023-10-27 17:51:21,665 INFO: Parser eventParser: event name: EVENT_DFU_START_RSP
    2023-10-27 17:51:21,665 INFO: Parser eventParser: status: [01]
    2023-10-27 17:51:21,666 INFO: DFU handle_duf_rsp: self.state dfuState.STARTED
    2023-10-27 17:51:21,667 INFO: Packet sendPacket: <<<send packet: AA 07 05 00 00 00 60 31 00 63
    
  2. ACI Host CLI test: Transmit data.

    2023-10-27 17:51:21,676 INFO: AciHostCLI continuously_read: >>>receive packet: AA 06 08 00 61 31 00 00 00 00 48 00 18
    2023-10-27 17:51:21,677 INFO: Parser eventParser: syncWord: AA,seqn: 06,len: 8,opcode: 3161,params: [00 00 00 00 48 00], check_sum: 18
    2023-10-27 17:51:21,677 INFO: Parser eventParser: event name: EVENT_DFU_DATA_REQ
    2023-10-27 17:51:21,678 INFO: Parser eventParser: offset: [00 00 00 00]
    2023-10-27 17:51:21,679 INFO: Parser eventParser: length: [48 00]
    2023-10-27 17:51:21,679 INFO: DFU handle_duf_rsp: next offset 0, length 72
    2023-10-27 17:51:21,680 INFO: Packet sendPacket: <<<send packet: AA 08 05 00 00 00 61 31 00 61
    2023-10-27 17:51:21,680 INFO: Parser cmdParser: cmd opcode: 3270 param: [01 00 47 4D 54 F3 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 82 0B EC 03 06 01 00 00 00 00 00 00 00 00 00 00 00 00 EC 03 06 00 00 00 00 00 00 00 00 00 00 00 00 00] name: CMD_UART_DFU
    2023-10-27 17:51:21,681 INFO: Packet sendPacket: <<<send packet: AA 09 4C 00 70 32 01 00 47 4D 54 F3 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2023-10-27 17:51:21,692 INFO: AciHostCLI continuously_read: >>>receive packet: AA 07 05 00 00 00 70 32 00 52
    2023-10-27 17:51:21,693 INFO: Parser eventParser: syncWord: AA,seqn: 07,len: 5,opcode: 0000,params: [70 32 00], check_sum: 52
    2023-10-27 17:51:21,693 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-10-27 17:51:21,694 INFO: Parser eventParser: event_id: [70 32]
    2023-10-27 17:51:21,694 INFO: Parser eventParser: status: [00]
    ....
    2023-10-27 17:53:08,591 INFO: AciHostCLI continuously_read: >>>receive packet: AA 84 08 00 61 31 F0 F2 24 00 64 00 78
    2023-10-27 17:53:08,592 INFO: Parser eventParser: syncWord: AA,seqn: 84,len: 8,opcode: 3161,params: [F0 F2 24 00 64 00], check_sum: 78
    2023-10-27 17:53:08,592 INFO: Parser eventParser: event name: EVENT_DFU_DATA_REQ
    2023-10-27 17:53:08,593 INFO: Parser eventParser: offset: [F0 F2 24 00]
    2023-10-27 17:53:08,593 INFO: Parser eventParser: length: [64 00]
    2023-10-27 17:53:08,593 INFO: DFU handle_duf_rsp: next offset 2421488, length 100
    2023-10-27 17:53:08,594 INFO: Packet sendPacket: <<<send packet: AA 5E 05 00 00 00 61 31 00 0B
    2023-10-27 17:53:08,594 INFO: Parser cmdParser: cmd opcode: 3270 param: [01 00 4F 52 28 00 B0 21 28 00 38 3F 28 00 6C 3E 28 00 A8 28 28 00 24 89 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 06 01 02 06 01 A0 00 FF FF FF FF 1F 00 92 02 94 02 96 02 09 11 19 21 29 31 39 41 49 51 59 61 69 71 79 7F F4 01] name: CMD_UART_DFU
    2023-10-27 17:53:08,595 INFO: Packet sendPacket: <<<send packet: AA 5F 68 00 70 32 01 00 4F 52 28 00 B0 21 28 00 38 3F 28 00 6C 3E 28 00 A8 28 28 00 24 89 28 00
    2023-10-27 17:53:08,603 INFO: AciHostCLI continuously_read: >>>receive packet: AA 85 05 00 00 00 70 32 00 D4
    2023-10-27 17:53:08,604 INFO: Parser eventParser: syncWord: AA,seqn: 85,len: 5,opcode: 0000,params: [70 32 00], check_sum: D4
    2023-10-27 17:53:08,605 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-10-27 17:53:08,606 INFO: Parser eventParser: event_id: [70 32]
    2023-10-27 17:53:08,606 INFO: Parser eventParser: status: [00]
    
  3. ACI Host CLI test: DFU successfully.

    2023-10-27 17:53:09,099 INFO: Parser eventParser: syncWord: AA,seqn: 86,len: 3,opcode: 3162,params: [01], check_sum: E3
    2023-10-27 17:53:09,100 INFO: Parser eventParser: event name: EVENT_DFU_RESULT
    2023-10-27 17:53:09,101 INFO: Parser eventParser: result: [01]
    2023-10-27 17:53:09,101 WARNING: DFU handle_dfu_result: result True, note True!!!
    2023-10-27 17:53:09,102 INFO: Packet sendPacket: <<<send packet: AA 60 05 00 00 00 62 31 00 08
    2023-10-27 17:53:09,103 INFO: DFU finish_dfu!!!
    2023-10-27 17:53:09,103 INFO: Parser cmdParser: cmd opcode: 3270 param: [03 00] name: CMD_UART_DFU
    2023-10-27 17:53:09,104 INFO: Packet sendPacket: <<<send packet: AA 61 04 00 70 32 03 00 F6
    2023-10-27 17:53:09,176 WARNING: AciHostCLI retrans: retransmit command dfu reboot due to ack timeout! retry: 1
    2023-10-27 17:53:09,177 INFO: Packet sendPacket: <<<send packet: AA 61 04 00 70 32 03 00 F6
    2023-10-27 17:53:09,179 INFO: AciHostCLI continuously_read: >>>receive packet: AA 87 05 00 00 00 70 32 00 D2
    2023-10-27 17:53:09,179 INFO: Parser eventParser: syncWord: AA,seqn: 87,len: 5,opcode: 0000,params: [70 32 00], check_sum: D2
    2023-10-27 17:53:09,180 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2023-10-27 17:53:09,180 INFO: Parser eventParser: event_id: [70 32]
    2023-10-27 17:53:09,181 INFO: Parser eventParser: status: [00]
    2023-10-27 17:53:09,834 INFO: AciHostCLI continuously_read: >>>receive packet: AA 01 08 00 23 00 15 03 77 56 22 03 CA
    2023-10-27 17:53:09,835 INFO: Parser eventParser: syncWord: AA,seqn: 01,len: 8,opcode: 0023,params: [15 03 77 56 22 03], check_sum: CA
    2023-10-27 17:53:09,835 INFO: Parser eventParser: event name: EVENT_BT_READY
    2023-10-27 17:53:09,836 INFO: Parser eventParser: factory_addr: [15 03 77 56 22 03]
    2023-10-27 17:53:09,837 INFO: Packet sendPacket: <<<send packet: AA 62 05 00 00 00 23 00 00 76
    2023-10-27 17:53:09,849 INFO: AciHostCLI continuously_read: >>>receive packet: AA 02 03 00 07 00 01 F3
    2023-10-27 17:53:09,850 INFO: Parser eventParser: syncWord: AA,seqn: 02,len: 3,opcode: 0007,params: [01], check_sum: F3
    2023-10-27 17:53:09,851 INFO: Parser eventParser: event name: EVENT_DEVICE_STATE
    2023-10-27 17:53:09,851 INFO: Parser eventParser: device_state: [01]
    2023-10-27 17:53:09,852 INFO: Packet sendPacket: <<<send packet: AA 63 05 00 00 00 07 00 00 91
    

Auracast™

Introduction

Auracast™ is a breakthrough technology based on the Bluetooth LE Audio specification. It offers an efficient and convenient solution for public broadcasting and multi-device audio sharing, drastically transforming the way people interact with others and surrounding environment. This Bluetooth Audio Transceiver application provides a comprehensive solution that fully supports Auracast™ Transmitter, Receiver, and Assistant roles.

Auracast™ Role: Transmitter

The Auracast™ Transmitter is a Bluetooth device capable of transmitting an Auracast™ broadcast. In this application, the Bluetooth Audio Transmitter Demo has BAP_BROADCAST_SOURCE enabled in app_lea_flag.h by default to activate this feature. As a broadcast source, the Transmitter requires audio data for transmission. The Source Play module effectively fulfills this role by providing configurable audio paths. It facilitates the acquisition of audio from inputs such as USB, mic, and I2S, enabling transmission through the BIS.

Auracast™ Role: Receiver

The Auracast™ Receiver is a Bluetooth device capable of receiving an Auracast™ broadcast. In this application, the Bluetooth Audio Receiver Demo has F_APP_TMAP_BMR_SUPPORT enabled in app_lea_flag.h by default to activate this feature. This application supports synchronizing with a random broadcast source, synchronizing with a specified address broadcast source, and initializing as a Scan Delegator to synchronize broadcast sources via the Auracast™ Assistant. In this chapter, we will initialize as a Scan Delegator to demonstrate the Auracast™ functionality.

Auracast™ Role: Assistant

The Auracast™ Assistant is a Bluetooth device capable of assisting an Auracast™ Receiver in receiving an Auracast™ broadcast. In this application, the Bluetooth Audio Transmitter Demo has BAP_BROADCAST_ASSISTANT enabled in app_lea_flag.h by default to activate this feature. Typically, an Assistant has a UI interface (like on a mobile phone) to display all of the available Auracast™ transmitters within range, allowing users to select which broadcast source to synchronize with the Receiver. In this chapter’s demonstration, the ACI Host can display the scanned broadcast sources and allows selection through commands.

ACI Host CLI Test

Transmitter

In the demonstration of the source play module, we provide an example using line-in as input and BIS as output. Please refer to the section ACI Host CLI Test: Line-in Source Play (BIS Output).

Receiver

The Receiver shall use the bis_sync_init delegator command to initialize itself as a scan delegator device, and then broadcast advertisement while waiting for the Assistant to establish a BLE connection with it. When the Assistant selects the specified broadcast source, it will transfer the broadcast source information to the Receiver via broadcast adio scan service.

ACI Host CLI CMD for Auracast™ Receiver

Command

Parameters

ACI Host CLI CMD

CMD_LEA_SYNC_INIT(0x3254)

bis_mode = random bis_policy = delegator addr = NULL

bis_sync_init delegator

CMD_LEA_ADV_START(0x3250)

None

lea_adv_start x

  1. ACI Host CLI test: Initialize as a Scan Delegator Device.

    2025-08-13 14:29:42,123 INFO: input command: bis_sync_init delegator
    2025-08-13 14:29:42,123 INFO: Parser cmdParser: cmd opcode: 3254 param: [01 00 00 00 00 00 00 00] name: CMD_LEA_SYNC_INIT
    2025-08-13 14:29:42,123 INFO: Packet sendPacket: <<<send packet: AA 1B 0A 00 54 32 01 00 00 00 00 00 00 00 54
    2025-08-13 14:29:42,133 INFO: AciHostCLI continuously_read: >>>receive packet: AA 04 05 00 00 00 54 32 00 71
    2025-08-13 14:29:42,138 INFO: Parser eventParser: syncWord: AA,seqn: 04,len: 5,opcode: 0000,params: [54 32 00], check_sum: 71
    2025-08-13 14:29:42,138 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2025-08-13 14:29:42,138 INFO: Parser eventParser: event_id: [54 32]
    2025-08-13 14:29:42,138 INFO: Parser eventParser: status: [00]
    
  2. ACI Host CLI test: Start LE Audio Advertising.

    2025-08-13 14:29:43,923 INFO: input command: lea_adv_start x
    2025-08-13 14:29:43,923 INFO: Parser cmdParser: cmd opcode: 3250 param: [] name: CMD_LEA_ADV_START
    2025-08-13 14:29:43,923 INFO: Packet sendPacket: <<<send packet: AA 1C 02 00 50 32 60
    2025-08-13 14:29:43,943 INFO: AciHostCLI continuously_read: >>>receive packet: AA 05 05 00 00 00 50 32 00 74
    2025-08-13 14:29:43,943 INFO: Parser eventParser: syncWord: AA,seqn: 05,len: 5,opcode: 0000,params: [50 32 00], check_sum: 74
    2025-08-13 14:29:43,943 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2025-08-13 14:29:43,943 INFO: Parser eventParser: event_id: [50 32]
    2025-08-13 14:29:43,943 INFO: Parser eventParser: status: [00]
    
  3. ACI Host CLI test: Connect with Assistant.

    2025-08-13 14:29:53,237 INFO: AciHostCLI continuously_read: >>>receive packet: AA 07 03 00 00 01 00 F5
    2025-08-13 14:29:53,237 INFO: Parser eventParser: syncWord: AA,seqn: 07,len: 3,opcode: 0100,params: [00], check_sum: F5
    2025-08-13 14:29:53,237 INFO: Parser eventParser: event name: APP_EVENT_LE_CONNECTED
    2025-08-13 14:29:53,237 INFO: Parser eventParser: link_id: [00]
    2025-08-13 14:29:53,237 INFO: Packet sendPacket: <<<send packet: AA 1E 05 00 00 00 00 01 00 DC
    
    2025-08-13 14:29:53,252 INFO: AciHostCLI continuously_read: >>>receive packet: AA 08 14 00 43 80 02 00 0F 00 02 00 02 27 02 56 22 03 18 00 00 00 F4 01 5B
    2025-08-13 14:29:53,252 INFO: Parser eventParser: syncWord: AA,seqn: 08,len: 20,opcode: 8043,params: [02 00 0F 00 02 00 02 27 02 56 22 03 18 00 00 00 F4 01], check_sum: 5B
    2025-08-13 14:29:53,252 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_STATE
    2025-08-13 14:29:53,257 INFO: Parser eventParser: link_state: [02]
    2025-08-13 14:29:53,257 INFO: Parser eventParser: app_link_id: [00]
    2025-08-13 14:29:53,257 INFO: Parser eventParser: conn_handle: [0F 00]
    2025-08-13 14:29:53,257 INFO: Parser eventParser: role: [02]
    2025-08-13 14:29:53,257 INFO: Parser eventParser: remote addr type: [00]
    2025-08-13 14:29:53,257 INFO: Parser eventParser: remote addr: [02 27 02 56 22 03]
    2025-08-13 14:29:53,257 INFO: Parser eventParser: connInterval: [18 00]
    2025-08-13 14:29:53,257 INFO: Parser eventParser: connLatency: [00 00]
    2025-08-13 14:29:53,257 INFO: Parser eventParser: supTimeout: [F4 01]
    2025-08-13 14:29:53,257 INFO: Packet sendPacket: <<<send packet: AA 1F 05 00 00 00 43 80 00 19
    
    2025-08-13 14:29:53,270 INFO: AciHostCLI continuously_read: >>>receive packet: AA 09 05 00 41 80 00 F4 00 3D
    2025-08-13 14:29:53,272 INFO: Parser eventParser: syncWord: AA,seqn: 09,len: 5,opcode: 8041,params: [00 F4 00], check_sum: 3D
    2025-08-13 14:29:53,272 INFO: Parser eventParser: event name: EVENT_XM_LE_MTU
    2025-08-13 14:29:53,272 INFO: Parser eventParser: mtu_size: [00 F4]
    2025-08-13 14:29:53,272 INFO: Packet sendPacket: <<<send packet: AA 20 05 00 00 00 41 80 00 1A
    2025-08-13 14:29:54,434 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0A 07 00 46 80 00 0D A7 04 00 71
    2025-08-13 14:29:54,434 INFO: Parser eventParser: syncWord: AA,seqn: 0A,len: 7,opcode: 8046,params: [00 0D A7 04 00], check_sum: 71
    
    2025-08-13 14:29:54,439 INFO: Parser eventParser: event name: EVENT_XM_LE_USER_CONFIRMATION_REQ
    2025-08-13 14:29:54,439 INFO: Parser eventParser: app_link_id: [00]
    2025-08-13 14:29:54,439 INFO: Parser eventParser: code: [0D A7 04 00]
    2025-08-13 14:29:54,439 INFO: Packet sendPacket: <<<send packet: AA 21 05 00 00 00 46 80 00 14
    
    2025-08-13 14:29:55,819 INFO: input command: lecfm t
    2025-08-13 14:29:55,819 INFO: Parser cmdParser: cmd opcode: 8049 param: [00 01] name: CMD_XM_LE_USER_CFM_REQ
    2025-08-13 14:29:55,819 INFO: Packet sendPacket: <<<send packet: AA 22 04 00 49 80 00 01 10
    
    2025-08-13 14:29:55,904 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0B 05 00 00 00 49 80 00 27
    2025-08-13 14:29:55,904 INFO: Parser eventParser: syncWord: AA,seqn: 0B,len: 5,opcode: 0000,params: [49 80 00], check_sum: 27
    2025-08-13 14:29:55,904 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2025-08-13 14:29:55,904 INFO: Parser eventParser: event_id: [49 80]
    2025-08-13 14:29:55,904 INFO: Parser eventParser: status: [00]
    2025-08-13 14:29:58,508 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0C 0B 00 02 01 00 00 00 02 27 02 56 22 03 40
    2025-08-13 14:29:58,508 INFO: Parser eventParser: syncWord: AA,seqn: 0C,len: 11,opcode: 0102,params: [00 00 00 02 27 02 56 22 03], check_sum: 40
    
    2025-08-13 14:29:58,508 INFO: Parser eventParser: event name: APP_EVENT_LE_PAIR_STATUS
    2025-08-13 14:29:58,508 INFO: Parser eventParser: link_id: [00]
    2025-08-13 14:29:58,508 INFO: Parser eventParser: cause: [00 00]
    2025-08-13 14:29:58,513 INFO: Parser eventParser: resolved_addr: [02 27 02 56 22 03]
    2025-08-13 14:29:58,513 INFO: Packet sendPacket: <<<send packet: AA 23 05 00 00 00 02 01 00 D5
    
Assistant

The Auracast™ Assistant’s job is to look for all of the available Auracast™ Transmitters within range and then present them to the user in a way that lets them make a choice. Once the user has selected an available broadcast audio stream, the Auracast™ Assistant will synchronize with the specified broadcast source and transfer the sync information to the Receiver via the broadcast adio scan service.

Enter the command baas scan to scan nearby advertisements and filter out Auracast™ Transmitter devices. Then synchronize using the pa_sync command, and send the sync information to the Receiver using bst_start.

  1. ACI Host CLI test: Connect with Receiver.

    2025-08-13 14:29:46,174 INFO: input command: lea_scan start
    2025-08-13 14:29:46,174 INFO: Parser cmdParser: cmd opcode: 3023 param: [00] name: CMD_LEA_SCAN
    2025-08-13 14:29:46,176 INFO: Packet sendPacket: <<<send packet: AA 2D 03 00 23 30 00 7D
    2025-08-13 14:29:46,259 INFO: AciHostCLI continuously_read: >>>receive packet: AA 04 05 00 00 00 23 30 00 A4
    2025-08-13 14:29:46,259 INFO: Parser eventParser: syncWord: AA,seqn: 04,len: 5,opcode: 0000,params: [23 30 00], check_sum: A4
    2025-08-13 14:29:46,264 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2025-08-13 14:29:46,264 INFO: Parser eventParser: event_id: [23 30]
    2025-08-13 14:29:46,264 INFO: Parser eventParser: status: [00]
    
    2025-08-13 14:29:46,309 INFO: AciHostCLI continuously_read: >>>receive packet: AA 06 34 00 40 01 01 00 00 06 23 06 56 22 03 0A 38 37 36 33 45 41 55 2D 32 33 00 00 00 00 00 00
    2025-08-13 14:29:46,309 INFO: Parser eventParser: syncWord: AA,seqn: 06,len: 52,opcode: 0140,params: [01 00 00 06 23 06 56 22 03 0A 38 37 36 33 45 41 55 2D 32 33 00 00 00 00 00 00 00 00 00 00 00 00], check_sum: 8B
    2025-08-13 14:29:46,309 INFO: Parser eventParser: event name: APP_EVENT_LE_AUDIO_SCAN_INFO
    2025-08-13 14:29:46,309 INFO: Parser eventParser: event_type: [01 00]
    2025-08-13 14:29:46,309 INFO: Parser eventParser: addr_type: [00]
    2025-08-13 14:29:46,309 INFO: Parser eventParser: addr: [06 23 06 56 22 03]
    2025-08-13 14:29:46,309 INFO: Parser eventParser: name_len: [0A]
    2025-08-13 14:29:46,309 INFO: Parser eventParser: name: [38 37 36 33 45 41 55 2D 32 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
    2025-08-13 14:29:46,309 INFO: Parser eventParser: name: 8763EAU-23
    
    2025-08-13 14:29:49,892 INFO: input command: le conn_idx
    2025-08-13 14:29:49,892 INFO: Parser cmdParser: device index: 0 addr_type 0 bd_addr: 06 23 06 56 22 03 , name: 8763EAU-23
    2025-08-13 14:29:52,721 INFO: Parser cmdParser: input dev_index: 0
    2025-08-13 14:29:52,721 INFO: Parser cmdParser: cmd opcode: 010E param: [03 00 06 23 06 56 22 03 00 E8 03] name: CMD_LE_CREATE_CONN
    2025-08-13 14:29:52,721 INFO: Packet sendPacket: <<<send packet: AA 38 0D 00 0E 01 03 00 06 23 06 56 22 03 00 E8 03 14
    
    2025-08-13 14:29:52,891 INFO: AciHostCLI continuously_read: >>>receive packet: AA 0F 05 00 00 00 0E 01 00 DD
    2025-08-13 14:29:52,891 INFO: Parser eventParser: syncWord: AA,seqn: 0F,len: 5,opcode: 0000,params: [0E 01 00], check_sum: DD
    2025-08-13 14:29:52,896 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2025-08-13 14:29:52,896 INFO: Parser eventParser: event_id: [0E 01]
    2025-08-13 14:29:52,896 INFO: Parser eventParser: status: [00]
    
    2025-08-13 14:29:53,212 INFO: AciHostCLI continuously_read: >>>receive packet: AA 10 05 00 07 01 00 02 02 DF
    2025-08-13 14:29:53,212 INFO: Parser eventParser: syncWord: AA,seqn: 10,len: 5,opcode: 0107,params: [00 02 02], check_sum: DF
    2025-08-13 14:29:53,212 INFO: Parser eventParser: event name: EVENT_LE_PHY_UPD
    2025-08-13 14:29:53,212 INFO: Parser eventParser: app_link_id: [00]
    2025-08-13 14:29:53,212 INFO: Parser eventParser: tx_phy: [02]
    2025-08-13 14:29:53,217 INFO: Parser eventParser: rx_phy: [02]
    2025-08-13 14:29:53,217 INFO: Packet sendPacket: <<<send packet: AA 39 05 00 00 00 07 01 00 BA
    
    2025-08-13 14:29:53,227 INFO: AciHostCLI continuously_read: >>>receive packet: AA 11 03 00 00 01 00 EB
    2025-08-13 14:29:53,232 INFO: Parser eventParser: syncWord: AA,seqn: 11,len: 3,opcode: 0100,params: [00], check_sum: EB
    2025-08-13 14:29:53,232 INFO: Parser eventParser: event name: APP_EVENT_LE_CONNECTED
    2025-08-13 14:29:53,232 INFO: Parser eventParser: link_id: [00]
    2025-08-13 14:29:53,232 INFO: Packet sendPacket: <<<send packet: AA 3A 05 00 00 00 00 01 00 C0
    
    2025-08-13 14:29:53,247 INFO: AciHostCLI continuously_read: >>>receive packet: AA 12 14 00 43 80 02 00 06 00 01 00 06 23 06 56 22 03 18 00 00 00 F4 01 57
    2025-08-13 14:29:53,247 INFO: Parser eventParser: syncWord: AA,seqn: 12,len: 20,opcode: 8043,params: [02 00 06 00 01 00 06 23 06 56 22 03 18 00 00 00 F4 01], check_sum: 57
    2025-08-13 14:29:53,247 INFO: Parser eventParser: event name: EVENT_XM_LE_CON_STATE
    2025-08-13 14:29:53,247 INFO: Parser eventParser: link_state: [02]
    2025-08-13 14:29:53,247 INFO: Parser eventParser: app_link_id: [00]
    2025-08-13 14:29:53,247 INFO: Parser eventParser: conn_handle: [06 00]
    2025-08-13 14:29:53,247 INFO: Parser eventParser: role: [01]
    2025-08-13 14:29:53,247 INFO: Parser eventParser: remote addr type: [00]
    2025-08-13 14:29:53,247 INFO: Parser eventParser: remote addr: [06 23 06 56 22 03]
    2025-08-13 14:29:53,247 INFO: Parser eventParser: connInterval: [18 00]
    2025-08-13 14:29:53,252 INFO: Parser eventParser: connLatency: [00 00]
    2025-08-13 14:29:53,252 INFO: Parser eventParser: supTimeout: [F4 01]
    2025-08-13 14:29:53,252 INFO: Packet sendPacket: <<<send packet: AA 3B 05 00 00 00 43 80 00 FD
    
    2025-08-13 14:29:53,262 INFO: AciHostCLI continuously_read: >>>receive packet: AA 13 05 00 41 80 00 F4 00 33
    2025-08-13 14:29:53,262 INFO: Parser eventParser: syncWord: AA,seqn: 13,len: 5,opcode: 8041,params: [00 F4 00], check_sum: 33
    2025-08-13 14:29:53,262 INFO: Parser eventParser: event name: EVENT_XM_LE_MTU
    2025-08-13 14:29:53,262 INFO: Parser eventParser: mtu_size: [00 F4]
    2025-08-13 14:29:53,262 INFO: Packet sendPacket: <<<send packet: AA 3C 05 00 00 00 41 80 00 FE
    
    2025-08-13 14:29:54,474 INFO: AciHostCLI continuously_read: >>>receive packet: AA 14 07 00 46 80 00 0D A7 04 00 67
    2025-08-13 14:29:54,479 INFO: Parser eventParser: syncWord: AA,seqn: 14,len: 7,opcode: 8046,params: [00 0D A7 04 00], check_sum: 67
    2025-08-13 14:29:54,479 INFO: Parser eventParser: event name: EVENT_XM_LE_USER_CONFIRMATION_REQ
    2025-08-13 14:29:54,479 INFO: Parser eventParser: app_link_id: [00]
    2025-08-13 14:29:54,479 INFO: Parser eventParser: code: [0D A7 04 00]
    2025-08-13 14:29:54,479 INFO: Packet sendPacket: <<<send packet: AA 3D 05 00 00 00 46 80 00 F8
    
    2025-08-13 14:29:58,155 INFO: input command: lecfm t
    2025-08-13 14:29:58,155 INFO: Parser cmdParser: cmd opcode: 8049 param: [00 01] name: CMD_XM_LE_USER_CFM_REQ
    2025-08-13 14:29:58,155 INFO: Packet sendPacket: <<<send packet: AA 3E 04 00 49 80 00 01 F4
    
    2025-08-13 14:29:58,233 INFO: AciHostCLI continuously_read: >>>receive packet: AA 15 05 00 00 00 49 80 00 1D
    2025-08-13 14:29:58,234 INFO: Parser eventParser: syncWord: AA,seqn: 15,len: 5,opcode: 0000,params: [49 80 00], check_sum: 1D
    2025-08-13 14:29:58,234 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2025-08-13 14:29:58,234 INFO: Parser eventParser: event_id: [49 80]
    2025-08-13 14:29:58,235 INFO: Parser eventParser: status: [00]
    
    2025-08-13 14:29:58,474 INFO: AciHostCLI continuously_read: >>>receive packet: AA 16 0B 00 02 01 00 00 00 06 23 06 56 22 03 32
    2025-08-13 14:29:58,474 INFO: Parser eventParser: syncWord: AA,seqn: 16,len: 11,opcode: 0102,params: [00 00 00 06 23 06 56 22 03], check_sum: 32
    2025-08-13 14:29:58,474 INFO: Parser eventParser: event name: APP_EVENT_LE_PAIR_STATUS
    2025-08-13 14:29:58,475 INFO: Parser eventParser: link_id: [00]
    2025-08-13 14:29:58,475 INFO: Parser eventParser: cause: [00 00]
    2025-08-13 14:29:58,475 INFO: Parser eventParser: resolved_addr: [06 23 06 56 22 03]
    2025-08-13 14:29:58,475 INFO: Packet sendPacket: <<<send packet: AA 3F 05 00 00 00 02 01 00 B9
    
  2. ACI Host CLI test: Scan for Nearby Broadcast Sources.

    025-08-13 14:30:13,198 INFO: input command: baas scan
    2025-08-13 14:30:13,200 INFO: Parser cmdParser: cmd opcode: 302F param: [00] name: CMD_LEA_BAAS_SCAN
    2025-08-13 14:30:13,200 INFO: Packet sendPacket: <<<send packet: AA 44 03 00 2F 30 00 5A
    2025-08-13 14:30:13,280 WARNING: AciHostCLI retrans: retransmit command baas scan due to ack timeout! retry: 1
    2025-08-13 14:30:13,531 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1C 34 00 46 01 01 00 00 03 25 03 56 22 03 0A 38 37 36 33 45 41 55 2D 32 35 00 00 00 00 00 00
    2025-08-13 14:30:13,531 INFO: Parser eventParser: syncWord: AA,seqn: 1C,len: 52,opcode: 0146,params: [01 00 00 03 25 03 56 22 03 0A 38 37 36 33 45 41 55 2D 32 35 00 00 00 00 00 00 00 00 00 00 00 00], check_sum: 71
    2025-08-13 14:30:13,531 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAAS_SCAN_INFO
    2025-08-13 14:30:13,531 INFO: Parser eventParser: scan_baas_dev_count: [01 00]
    2025-08-13 14:30:13,531 INFO: Parser eventParser: addr_type: [00]
    2025-08-13 14:30:13,531 INFO: Parser eventParser: addr: [03 25 03 56 22 03]
    2025-08-13 14:30:13,531 INFO: Parser eventParser: name_len: [0A]
    2025-08-13 14:30:13,531 INFO: Parser eventParser: name: [38 37 36 33 45 41 55 2D 32 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
    2025-08-13 14:30:13,531 INFO: Packet sendPacket: <<<send packet: AA 47 05 00 00 00 46 01 00 6D
    
    2025-08-13 14:30:13,546 INFO: AciHostCLI continuously_read: >>>receive packet: AA 1F 05 00 00 00 2F 30 00 7D
    2025-08-13 14:30:13,546 INFO: Parser eventParser: syncWord: AA,seqn: 1F,len: 5,opcode: 0000,params: [2F 30 00], check_sum: 7D
    2025-08-13 14:30:13,546 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2025-08-13 14:30:13,546 INFO: Parser eventParser: event_id: [2F 30]
    2025-08-13 14:30:13,546 INFO: Parser eventParser: status: [00]
    2025-08-13 14:30:15,401 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_BAAS_SCAN_INFO
    2025-08-13 14:30:15,401 INFO: Parser eventParser: scan_baas_dev_count: [02 00]
    2025-08-13 14:30:15,401 INFO: Parser eventParser: addr_type: [00]
    2025-08-13 14:30:15,401 INFO: Parser eventParser: addr: [03 03 03 66 66 66]
    2025-08-13 14:30:15,401 INFO: Parser eventParser: name_len: [0C]
    2025-08-13 14:30:15,401 INFO: Parser eventParser: name: [77 6D 79 5F 38 37 37 33 47 5F 30 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
    2025-08-13 14:30:15,401 INFO: Packet sendPacket: <<<send packet: AA 48 05 00 00 00 46 01 00 6C
    
  3. ACI Host CLI test: Synchronize with the Specified Device.

    2025-08-13 14:30:21,452 INFO: input command: pa_sync dev0
    2025-08-13 14:30:21,452 INFO: Parser cmdParser: cmd opcode: 3030 param: [00] name: CMD_LEA_PA_SYNC_DEV
    2025-08-13 14:30:21,452 INFO: Packet sendPacket: <<<send packet: AA 49 03 00 30 30 00 54
    2025-08-13 14:30:21,527 WARNING: AciHostCLI retrans: retransmit command pa_sync dev0 due to ack timeout! retry: 1
    2025-08-13 14:30:21,527 INFO: Packet sendPacket: <<<send packet: AA 49 03 00 30 30 00 54
    2025-08-13 14:30:21,537 INFO: AciHostCLI continuously_read: >>>receive packet: AA 21 04 00 45 01 00 00 95
    2025-08-13 14:30:21,537 INFO: Parser eventParser: syncWord: AA,seqn: 21,len: 4,opcode: 0145,params: [00 00], check_sum: 95
    2025-08-13 14:30:21,537 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_ADD_SYNC_HANDLE
    2025-08-13 14:30:21,537 INFO: Parser eventParser: sync_handle_count: [00]
    2025-08-13 14:30:21,537 INFO: Packet sendPacket: <<<send packet: AA 4A 05 00 00 00 45 01 00 6B
    2025-08-13 14:30:21,552 INFO: AciHostCLI continuously_read: >>>receive packet: AA 22 05 00 00 00 30 30 00 79
    2025-08-13 14:30:21,552 INFO: Parser eventParser: syncWord: AA,seqn: 22,len: 5,opcode: 0000,params: [30 30 00], check_sum: 79
    2025-08-13 14:30:21,552 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2025-08-13 14:30:21,552 INFO: Parser eventParser: event_id: [30 30]
    2025-08-13 14:30:21,552 INFO: Parser eventParser: status: [00]
    2025-08-13 14:30:21,809 INFO: AciHostCLI continuously_read: >>>receive packet: AA 23 03 00 47 01 04 8E
    2025-08-13 14:30:21,809 INFO: Parser eventParser: syncWord: AA,seqn: 23,len: 3,opcode: 0147,params: [04], check_sum: 8E
    2025-08-13 14:30:21,809 INFO: Parser eventParser: event name: EVENT_LE_AUDIO_PA_SYNC_STATE
    2025-08-13 14:30:21,809 INFO: Parser eventParser: sync_state: [04]
    2025-08-13 14:30:21,809 INFO: Packet sendPacket: <<<send packet: AA 4B 05 00 00 00 47 01 00 68
    
  4. ACI Host CLI test: Send the Synchronization Information to the Receiver.

    2025-08-13 14:30:24,633 INFO: input command: bst_start group_0_sync_0
    2025-08-13 14:30:24,633 INFO: Parser cmdParser: cmd opcode: 3029 param: [00 00] name: CMD_LEA_BST_START
    2025-08-13 14:30:24,638 INFO: Packet sendPacket: <<<send packet: AA 4C 04 00 29 30 00 00 57
    2025-08-13 14:30:24,653 INFO: AciHostCLI continuously_read: >>>receive packet: AA 24 05 00 00 00 29 30 00 7E
    2025-08-13 14:30:24,653 INFO: Parser eventParser: syncWord: AA,seqn: 24,len: 5,opcode: 0000,params: [29 30 00], check_sum: 7E
    2025-08-13 14:30:24,653 INFO: Parser eventParser: event name: APP_EVENT_ACK
    2025-08-13 14:30:24,653 INFO: Parser eventParser: event_id: [29 30]
    2025-08-13 14:30:24,653 INFO: Parser eventParser: status: [00]