Hi,
our device has a hard current limit of 2mA. Normal BLE operation is actually no problem. Connection parameters and packets/event are negotiated accordingly between master and slave to obey this limit.
Problem arises if there is an uncontrolled disconnect, e.g. if the master (a smartphone) leaves the receive range of the slave. Consequence is, that the Softdevice on the device tries to transmit pending packets to the master until supervision timeout is reached. This results in a retry burst (so far my understanding).
During the retries the average current drawn is above those 2mA. To buffer such peaks the device has a bank of capacitors.
For iOS the supervision timeout is 720ms, for Android it depends as always on version and device. Actually I have observed timeout ranges from 2s up to 20s!
The 720ms retry period is not a problem, but the 20s are. Capacitors are empty after about 10s and the hard current limit makes Vcc of the nRF drop.
So the actual questions:
- any chance to set a local slave supervision time (just like local slave latency)?
- is it somehow possible to catch this hopeless retry burst?
Thanks & regards
Hardy