Hi,
I am new to forum and to Ble. sorry about my week English. I am working on a project where I am reading adc value every 1s and sending it over ble. So I have written a firmware using NRF52 where it generates interrupt every 1 sec, reads adc, and notifies to the central only if the adc value has been changed. I have set the NRF52 as follwing:
#define MIN_CONN_INTERVAL MSEC_TO_UNITS(500, UNIT_1_25_MS)
#define MAX_CONN_INTERVAL MSEC_TO_UNITS(500, UNIT_1_25_MS)
#define SLAVE_LATENCY 7
#define CONN_SUP_TIMEOUT MSEC_TO_UNITS(10000, UNIT_10_MS)
I then used Nordic sniffer to analyse the data, I can see the master getting notified every second but also empty PDU been exchanged between master and slave (attached the picture of the wireshark).
My question are: is it part of the BLE specification that after each notification the master and slave have to exchange empty PDU (looks like the slave latency resets after notificaton)? if not, how can I stop it ? if yes, then is there any other way of designing firmware low power (I mean if setting characteristic to read only is better than setting characteristic to notify in terms of energy saving?) My project requires low power consumption so I only want slave to talk to master at every 1 sec (when there is change in data) and send empt PDU at interval given by slave latency. In my case I am sending data every 500ms (1 empty PDU and adc value every 500ms )
Please help! image description
Thanks