I've been looking all over the place for the required bluetooth connection parameters that will work for all three of these operating platforms. I'm using the HOGP (Bluetooth over HID GATT) profile for this project.
My project is an embedded system written by myself with a BLE module that I have control over the following parameters for connection.
- Connection Interval Min
- Connection Interval Max
- Slave Latency
- Supervision Timeout
- Advertising Interval Min
- Advertising Interval Max
My target devices to connect will be to satisfy connnections with Android >= 4.3, iOS7, and >= Win 8.1.
Apple was kind enough to give a document with the appropriate parameters on page 22 in the link below. I have not been able to find any information about Android and Win 8.
https://developer.apple.com/hardwaredrivers/bluetoothdesignguidelines.pdf
My current working settings for iOS7 tested fully with bidirection communication with freeware lightBlue is as follows. My embedded code and host software for iOS7 works.
- Connection Interval Min 30ms
- Connection Interval Max 56.25ms
- Slave Latency 3
- Supervision Timeout 5000ms
I've found from another stack overflow page that android allegedly works on 7.5ms Connection Interval from the following links.
- Android BLE Connection time interval
- http://processors.wiki.ti.com/index.php/Bluetooth_SensorTag?DCMP=lprf-stdroid&HQS=lprf-stdroid-pr-wiki1#Supported_Android_devices
Unfortunately the second requirement from apple iOS spec is that "Interval Min ≥ 20 ms".
Am I not understanding these ranges or how they are interpreted? If I set the Interval min to 7.5ms for Android wouldn't that void apples requirements? How can I satisfy both systems and also Win8 if possible?
My understanding is that the slave device offers a suggested setting in between the min and max and the master (smartphone) alerts the user of the actual selected value in that range.
I appreciated any help with this issue and hope this post could benefit others considering the fairly new and incomplete knowledge base for BLE.
Thanks in advance!