Other Parts Discussed in Thread: BLE-STACK
Hi,
I have a application based on the multirole example with SDK 5.10. In very rare cases when a Samsung Galaxy S8 smartphone is connected as a central device and writes data to a characteristic, the BLE-stack reports a hardware error with error code 0x8c which is HW_FAIL_INADEQUATE_PKT_LEN.
The Samsung Galaxy S8 supports BLE 5.0. The connection uses DLE with length of 251 Bytes, ATT MTU is negotiated to 251 Bytes.
The S8 sends 52 Bytes data via ATT write command but the attribute callback isn't called for this messag and after that the hardware error is raised.
The BLE record with an Ellisys BLE Tracker shows me a conspicuous behavior. Only one Link-Layer packet would be necessary for the data transfer, but 2 packets are used (a retry was also necessary for the first packet). The first packet consists only of 2 bytes data and this is only L2CAP header data length field (0x0037 = 55 Bytes -> 52 Bytes ATT payload data + 3 Bytes ATT Header). The second Link Layer packet contains 57 bytes of data: the remaining 2 bytes of the L2CAP Header (the Destination CID 0x0004 = ATT), the ATT Header (3 Bytes) and ATT Payload (52 Bytes).
Is this the reason for the hardware error?