CYBT 343026 with A2DP and BLE

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
LuGi_2890336
Level 3
Level 3
10 likes given 5 likes given First like received

I have to develop an application with Bluetooth connection with A2DP profile for audio streaming and some BLE services and characteristics for data exchange. The audio streaming should get out in I2S peripheral.

I'm using CYBT-343026-EVAL, I downloaded WICED Studio and the platform files for this evaluation board (https://community.cypress.com/docs/DOC-13750).

I created a new project with WICED Bluetooth Designer, I activated A2DP profile, created BLE services and characteristics and generated the code. I removed from this one the unnecessary code and added the functions (copied from "headset" example) "headset_a2dp_init" and  "a2dp_sink_control_cback". In this last function I added:

  • "wiced_bt_a2dp_sink_update_route_config" function for configure the codec (in WICED_BT_A2DP_SINK_CODEC_CONFIG_EVT event)
  • "wiced_bt_a2dp_sink_send_start_response" for response start event (in WICED_BT_A2DP_SINK_START_IND_EVT event)

All seems ok: I can see the services, characteristics and I can connect with my smartphone to device and see it like a multimedia device for streaming audio. The problem is that when I try to start streaming (with generic app-player) it starts and I can see the signal in I2S pins but, after few seconds, it stops and I'm not never able to starts it again; only way to starts it again it's to reset the device.

What could be the problem?

I tried also to start from headset example but it's not so easy to edited this one. I can try also this solution but I need more support.

There are some documents that explain how to use the libraries and how to use it for create my custom application (with profiles, codecs, services, characteristics, ...)?

0 Likes
1 Solution
Anonymous
Not applicable

If you are not streaming, then are you able to connect (BLE) and discover the services and characteristics?

Ideally it should have worked fine.

Just try one thing. Send a connection parameter update request upon connection. Increase the connection interval to maybe 100 or even 200ms and the supervision timeout to a second or 2.

View solution in original post

0 Likes
10 Replies