Sleep clock accuracy (SCA) can have a massive impact on a slave with large connection latency.
E.g. a slave device with 100ms connection interval, connection latency of 299 and worst case sleep clock accuracy of 500ppm has to turn its receiver on 15 msec earlier than if it had an accurate sleep clock. This is almost 15 times longer than the connection time itself. In such case it pays to use 20ppm 32.768kHz crystal!
My question is where in the BLE stack slave SCA set up?
I had a look at HIDEmuKbd sample but could not find anything. There are relevant function defined in ll.h and hci.h but they seem to be never called from anywhere in the project code. What are default values then?
On the same note where do you define master SCA that gets sent to a slave during connection request? Sending worse than required accuracy will make slave use more power. In above example if master sends 500ppm data (masterSCA = 0) in ADV_CONNECT_REQ than the slave would have to turn the receiver on 30 msec earlier than the master actually gets on the air! If both clocks have 20ppm accuracy instead and this is properly reflected in BLE code then receiver on time window can be reduced from 30 msec to 1.2 msec. This is a massive energy save.
Where in the code is it?
Thanks
Leo