Recent discussions
Hello all,
I have a the CYBT-213043-MESH board, and my question is this: Would it be possible to have a single application with both client and server capabilities run on these boards? If so, what would be the right way to go about achieving this?
Thanks,
Mariela
Show LessI can't find releasev3.2.0 in github https://github.com/Infineon/wiced_btsdk.
How can I get btsdk 3.2 without modustoolbox?
Regards,
gykim
Show LessHello,
Could someone please let me know where I could obtain SDK and other programming manuals/materials/software for programming the firmware on the BCM2046 Chipsets, directly?
Also, would anyone please be able to let me know where I could obtain wiring/connection information for connecting the programming interface to a PC eg: via USB, SPI or JTAG and being able to read the attached FLASH memory?
Thanks very much!
cheers,
Rodney
Show Less
I'am trying to ble_mouse source on custom board with cyw20819.
For idle status, I got the 'HCI_ERR_INSTANT_PASSED' for connection_down reason.
I mean idle status is no mouse input. It works with slave latency. No sleep mode.
Ble configuration is follows.
conn_min_interval = conn_max_interval = 8
conn_latency = 99
conn_supervision_timeout = 500.
Show LessI tested 20719 audio_watch demo.
It can be successfully paired and connected with Bluetooth speakers.
However, when the Bluetooth speaker initiates a connection to 20179 (such as automatic reconnection when starting up), it is always unsuccessful.
There should be L2CAP connection request after "HCI_Encryption_Change", but in fact there is nothing.
Attach hci trace files, from BTSPY
Show LessI have a query with respect to the parameters of the operation
wiced_bool_t wiced_bt_spp_send_session_data( uint16_t handle, uint8_t * p_data, uint32_t len )
within the BTSDK v3.2.
The documentation states:
'The first 2 octets of the p_data must be the handle passed to the application in the wiced_bt_spp_connection_up_callback in the big endian format.'
However I see in the RFCOMM_serial_comm example project with spp.c in the operation
void app_send_data(void)
The data buffer passed to the wiced_bt_spp_send_session_data operation does not contain the handle.
I have a project based on the RFCOMM_serial_comm example project which does not add the handle to the first octets of the data being sent and all works well.
It seems odd that wiced_bt_spp_send_session_data has the handle as the first parameter yet the handle also needs adding to the data buffer.
I'd like an answer to:
Why does the documentation for wiced_bt_spp_send_session_data state the SPP handle should be the first two octets of the data buffer being sent, yet in the RFCOMM_Serial_comm example this is not done and the code works with out these first two octets being the SPP handle?
Thanks.
Show Less
Hello,
I was trying the AnyCloud BLE Environmental Sensing Service example on a PSoC 6 Wi-Fi BT Prototyping Kit and noticed some errors.
The code periodically reads a thermistor and prints it on the console. If one runs the Cypress CySmart Android app, browses to the Gatt service and activates the "Notify" option, the app gets notified by the PSoC board of the temperature reading.
The problem is: turning on Notify will cause the BLE to abruptly disconnect within a short period (about 20 sec). The reason is the handler for write failed to send a response to the phone.
In app_bt_gatt_handler.c ( https://github.com/Infineon/mtb-example-anycloud-ble-ess/blob/master/app_bt_gatt_handler.c),
Function app_gatts_attr_req_handler():
case GATT_REQ_WRITE:
case GATT_CMD_WRITE:
gatt_status = app_gatt_attr_write_handler(p_attr_req->opcode,
&p_attr_req->data.write_req,
p_attr_req->len_requested );
if (p_attr_req->opcode == GATT_REQ_WRITE)
{
if(gatt_status == WICED_BT_GATT_INVALID_ATTR_LEN)
{
wiced_bt_gatt_server_send_error_rsp(p_attr_req->conn_id,
p_attr_req->opcode,
p_attr_req->data.read_req.handle,
WICED_BT_GATT_INVALID_ATTR_LEN);
}
if(gatt_status == WICED_BT_GATT_INVALID_HANDLE)
{
wiced_bt_gatt_server_send_error_rsp(p_attr_req->conn_id,
p_attr_req->opcode,
p_attr_req->data.read_req.handle,
WICED_BT_GATT_INVALID_HANDLE);
}
}
When the call to app_gatt_attr_write_handler() returns with WICED_BT_GATT_SUCCESS, there needs to be a call to wiced_bt_gatt_server_send_write_rsp() to send the response. This is missing in the code.
This line is also dubious: if (p_attr_req->opcode == GATT_REQ_WRITE). What about the GATT_CMD_WRITE case?
Furthermore, on closer examination, even the parameter passed to wiced_bt_gatt_server_send_error_rsp() appears to be wrong: it passes p_attr_req->data.read_req.handle for a WRITE case. It should have used p_attr_req->data.write_req.handle.
Besides, the 2 separate calls to wiced_bt_gatt_server_send_error_rsp() can be reduced to 1 call: wiced_bt_gatt_server_send_error_rsp(..., gatt_status).
The error handling code for READ has similar mistakes:
case GATT_REQ_READ:
case GATT_REQ_READ_BLOB:
gatt_status = app_gatt_attr_read_handler(p_attr_req->conn_id,
p_attr_req->opcode,
&p_attr_req->data.read_req,
p_attr_req->len_requested);
if ( (p_attr_req->opcode == GATT_REQ_READ) ||
(p_attr_req->opcode == GATT_REQ_READ_BLOB) )
{
if(gatt_status == WICED_BT_GATT_SUCCESS)
{
wiced_bt_gatt_server_send_write_rsp(p_attr_req->conn_id,
p_attr_req->opcode,
p_attr_req->data.write_req.handle);
}
else
{
wiced_bt_gatt_server_send_error_rsp(p_attr_req->conn_id,
p_attr_req->opcode,
p_attr_req->data.write_req.handle,
gatt_status);
}
}
The code invokes wiced_bt_gatt_server_send_write_rsp() and passes p_attr_req->data.write_req.handle for a READ case. It should have used wiced_bt_gatt_server_send_read_handle_rsp() and used p_attr_req->data.read_req.handle.
These 2 lines also appear redundant. The switch case already assures that opcode has those values.
if ( (p_attr_req->opcode == GATT_REQ_READ) ||
(p_attr_req->opcode == GATT_REQ_READ_BLOB) )
I hope the code can be improved so others won't have to contend with the abrupt disconnection.
Best Regards,
SK
We'd like to implement a solution based on CYBT-353027-02 module (CYW20706) that has both HFP and HF Audio Gateway functionality. That means, our product shall be able to connect to a mobile phone and a headset simultaneously and forward eSCO audio between those 2 devices and the host CPU connected to it via its PCM interface.
|---------------------------------|
Headset <--> | AG | |
| CYW20706 |PCM| <-> Host CPU |
Mobile Phone <--> | HF | |
|---------------------------------|
So, I have the following questions:
1. Is described above possible at all?
2. Is CYW20706 able to support 2 (e)SCO connections simultaneously?
3. How audio routing between those 2 (e)SCO connections is done?
4. Can we route audio between PCM interface and 2 (e)SCO connections on-the-fly? How?
5. How CYW20706 mixes audio with different codecs, say, if one audio stream is mSBC-encoded and another one uses CVSD?
6. Actually, we can mix the audio at host side. Is it possible to use 2 stereo channels at PCM interface to, for example, forward HF audio to the left channel and AG audio to the right channel? How to do that?
Hi
During the SPP test, the ACL was connected, but the RFCOMM was not connected.
Looking at the mobile phone BT_Snoop.log and Air Log, SDP Search/Attrib Req is transmitted from the mobile phone,
and then the response is transmitted from cyw20706.
I think smart phone can't get it due to problems such as RF
But For other chips, SDP Search/Attrib RES transmutted several times.
Why is it different from other chips?
Tell me the transmission sequence of Res and how to transmit it more than twice.
Thanks
Show Less
Hi
I have paired the Bluetooth SPP profile with smartphone.
After disconnection, can I initiate a reconnection from the device side?
Can wiced_bt_spp_connect() do such a function?
Using A2DP, the device can initiate a reconnection.
SPP profile can only be reconnect by smartphone?