This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Very low throughput iOS8.1 and nRF51822

Hi ! I have a rather strange problem: 1 packet is transmitted for 30 milliseconds. I use iPhone-4s with iOS8.1 and custom board with nRF51822

In the firmware exists 4 characteristics: 2 - for receive data and 2 - for send. Here are settings nRF51822:

#define MIN_CONN_INTERVAL MSEC_TO_UNITS(7.5, UNIT_1_25_MS)	
#define MAX_CONN_INTERVAL MSEC_TO_UNITS(30, UNIT_1_25_MS)
#define SLAVE_LATENCY 0
#define CONN_SUP_TIMEOUT MSEC_TO_UNITS(6000, UNIT_10_MS)

This is a peace of sniffer log:

8948     85.417583000     Master     Slave     ATT     37     Rcvd Write Request, Handle: 0x000d
8949     85.421619000     Slave     Master     LE LL   26     Empty PDU
8950     85.433200000     Master     Slave     LE LL   26     Empty PDU
8951     85.437236000     Slave     Master     ATT     31     Rcvd Write Response
8952     85.463725000     Master     Slave     LE LL   26     Empty PDU
8953     85.468043000     Slave     Master     LE LL   26     Empty PDU
8954     85.494057000     Master     Slave     ATT     53     Rcvd Write Request, Handle: 0x000b
8955     85.497949000     Slave     Master     LE LL   26     Empty PDU
8956     85.523015000     Master     Slave     LE LL   26     Empty PDU
8957     85.526956000     Slave     Master     ATT     31     Rcvd Write Response
8958     85.554217000     Master     Slave     ATT     53     Rcvd Write Request, Handle: 0x000b
8959     85.558422000     Slave     Master     LE LL   26     Empty PDU
8960     85.583096000     Master     Slave     LE LL   26     Empty PDU
8961     85.595372000     Slave     Master     ATT     31     Rcvd Write Response
8962     85.613820000     Master     Slave     ATT     47     Rcvd Write Request, Handle: 0x000b
8963     85.617672000     Slave     Master     LE LL   26     Empty PDU
8964     85.643008000     Master     Slave     LE LL   26     Empty PDU
8965     85.646893000     Slave     Master     ATT     31     Rcvd Write Response
8966     85.673532000     Master     Slave     LE LL   26     Empty PDU
8967     85.677629000     Slave     Master     LE LL   26     Empty PDU
8968     85.703538000     Master     Slave     LE LL   26     Empty PDU
8969     85.707800000     Slave     Master     LE LL   26     Empty PDU
8970     85.733147000     Master     Slave     LE LL   26     Empty PDU
8971     85.737248000     Slave     Master     ATT     37     Rcvd Handle Value Indication, Handle: 0x0012
8972     85.763800000     Master     Slave     ATT     31     Rcvd Handle Value Confirmation
8973     85.767446000     Slave     Master     LE LL   26     Empty PDU
8974     85.793250000     Master     Slave     LE LL   26     Empty PDU
8975     85.798415000     Slave     Master     ATT     53     Rcvd Handle Value Indication, Handle: 0x000f
8976     85.823191000     Master     Slave     ATT     31     Rcvd Handle Value Confirmation
8977     85.827331000     Slave     Master     LE LL   26     Empty PDU
8978     85.853193000     Master     Slave     LE LL   26     Empty PDU
8979     85.858211000     Slave     Master     ATT     53     Rcvd Handle Value Indication, Handle: 0x000f
8980     85.883920000     Master     Slave     ATT     31     Rcvd Handle Value Confirmation
8981     85.887678000     Slave     Master     LE LL   26     Empty PDU
8982     85.913133000     Master     Slave     LE LL   26     Empty PDU
8983     85.917839000     Slave     Master     ATT     47     Rcvd Handle Value Indication, Handle: 0x000f
8984     85.944011000     Master     Slave     ATT     31     Rcvd Handle Value Confirmation
8985     85.947797000     Slave     Master     LE LL   26     Empty PDU

As we see bettwen master-request and slave-responce passes ~30 milliseconds such between 8948 and 8951 packets. Each packet have len=20 byte and 0.5 second by transmit 60 byte to one side and 60 byte to back :).

P.S. bettwen packets 8965 and 8971 the nRF have some work.

Who would be able to explain why such a low speed?

Thanks!

Related