I performed current consumption measurements on the CY8CKIT-042-BLE Pioneer Kit. The measurements were mostly focused on the advertising of BLE, advertising on all three possible channels. While performing the current measurements I made a strange observation where I have no explanation for. Maybe someone here can help me:
Leaving the bytes of data under "Advertisement packet" constant and changing the "Scan response packet" data (so different number of bytes) showed a huge difference in current and therefore in power consumption. First I thought this would be because of another BLE device which is scanning. But this was not the case. There were no scan responses observable. Taking a closer look to the advertising event showed that there was a difference in the duration of the Inter-Channel-Delay. So, e.g., when choosing a scan response packet of 31 Bytes, the Inter-Channel-Delay took longer as when choosing a scan response packet of 3 Bytes. Nevertheless, the scan response was NEVER sent. According to AN92584 , page 37 the Inter-Channel-Delay should be fixed at 1.25ms, which is in my case definitely not true. Nevertheless, according to the Bluetooth Standard 4.2 this Inter-Channel-Delay has to be shorter than 10ms, therefore of course the functionality is not restricted.
Could someone explain to me why the Inter-Channel-Delay is variable? What is the reason behind it?
Best regards and many thanks in advance,
Do you know the measurements of the inter-channel-delay range you were seeing? (can you post them here?)
Otherwise, that sounds like a bug with the BLE radio code for cypress to handle
Thanks for your answer!
The first plot shows the power consumption of an advertising event with 30 Bytes of payload data and 0 Bytes for the scan response packet. The whole duration of the advertising on all three channels is about 5.5 ms.
The second plot shows the power consumption of an advertising event with the same settings, except for the scan response packet: There 31 Bytes of payload were chosen.
Visible to the naked eye, the two Inter-Channel-Delays are longer, resulting in a total duration of about 6.6 ms.
For this measurement the code from Cypress 100 Projects in 100 Days, Day 27 BLE_Power_Measurement was used. As mentioned in the previous post, all I am changing is the amount of payload for the scan response under tab "Gap Settings", Peripheral role -> Scan response packet.
Assuming you have all of your components in the project updated to the latest versions (BLE looked like v5.5 was latest?);
Potentially this delay could be caused by something weird with power saving mode, buffer overflow of the scan response data, or interrupts being handled/functions being run.
However, I think I agree with your initial assessment that the cypress library most likely has a bug causing this delay to fluctuate with scan response data.
Thanks a lot for your help! The latest version should be v3.30a (according to Cypress' website) and yes I am using this version.
Is there any possibility to get an answer from one of the Cypress guys?
Sorry, you're right; the version is 3.30 for the BLE component (I misread that pretty bad )
Potentially, you could open a case with them to get some direct communication with the Cypress FAEs on determining the cause of the issue.