cancel
Showing results for 
Search instead for 
Did you mean: 

STM32WB BLE DATA Transmission Losses

Aishwarya
Associate III

Hii guys,

we are using the STM32WB50 controller in our project. Stream 23000 bytes continuously in a second(46bytes after every 2-millisecond interval) using Bluetooth low energy system provided by the STM32WB microcontroller.

To successfully transmit data from transmitter to receiver, we refer to the BLEDataThroughput project provided with the STM32WB cube library.

MTU size: 251 Bytes

Gatt characteristic size: 255 Bytes using property notify

Connection Interval min & max: 7.5 ms

PHY: 1M( STM32WB50 limit)

Is there any manner or sequence to update BLE connection parameters MTU size and connection interval?Because after all the above updates, we are getting data losses at the receiver end.

We transmit data from the server using function aci_gatt_update_char_value()

we reach upto aci_gatt_update_char_value() function using utility functions UTIL_SEQ_SetTask() , UTIL_SEQ_Run() SendData() and ***_STM_UpdateChar()as

  • void SendData( void )

status = DTS_STM_UpdateChar(DATA_TRANSFER_TX_CHAR_UUID, (uint8_t *) &DataTransferServerContext.TxData);

aci_gatt_update_char_value(Service_Handle, Char_Handle, Val_Offset, Char_Value_Length, Char_Value)

UTIL_SEQ_SetTask()

Is aci_gatt_update_char_value() Function blocking? Because hci_send_req(struct hci_request *p_cmd, uint8_t async) is waiting until local_cmd_status is updated in aci_gatt_update_char_value().

  • while(local_cmd_status == HCI_TL_CmdBusy).

we have mainly 2 questions

  • Is there any manner or sequence to update BLE connection parameters MTU size and connection interval? if no, Please guide the right way to improve the BLE data transmission method.
  • Is aci_gatt_update_char_value() Function blocking?

0 REPLIES 0