Login Register
Corrupted Scan Data received in Telink 8258
Jan 24, 2023 14:58




Our SDK version is Single-connection SDK v3.4.2.1. HW is Telink 8258, 64KB RAM, 1MB flash

We have an application that scans for BLE packets and compares to expected packet and if matches, push to a re-transmit queue from which we advertise every 20ms.

We run a test by transmitting the same packet at 5ms (there  could be other BLE noise also in the environment) from another (Non Telink) device.

We see that we get corrupted packets in the scan callback (1 corrupted packet per 30sec, average). We send packet with manufacture specific data (0xFF type) and use manufacture ID 0xAA55 for testing. We check for manufacture specific data packets in scan callback and checks if the manufacture ID matches, then if other data is mismatch, we flag packet corruption.

We have also verified the transmitter setup, by using other receiver (Non Telink) hardwares.

The Scan interval configuration is 100ms scan interval. We also tried with 50ms scan interval.

We do a deep copy of the rx data from the pointer provided in the callback at the beginning of the callback itself.

The Scan callback consumes 130us on average.

Our application consumes roughly 230us in the irq_handler. We also tested with reducing this to 24us.

We tested with blt_rxfifo configurations -  RX FIFO SIZE (64), RX_FIFO_NUM (24) and RX FIFO SIZE (288), RX_FIFO_NUM(6).

Our main loop consumes 1.74ms average. The advertisement is handled from main loop.

We use bls_ll_setAdvEnable API to enable/disable Advertisements and blc_ll_setScanEnable API to enable/disable scan.

Can you please guide us on how to avoid the above issue, or any pointers on debugging the issue?

2 replies
TL_Soyo Jan 29, 2023 13:40


  Our colleagues are dealing with it and will contact you by email.

aajayakumar [Author] Feb 01, 2023 18:34

Thanks much.