Test Cases#

Test ID Test Type Test Sub Type Procedure
1 Bluetooth LE Scanning

Reset device, scan on phone.

Pass if device is found by phone within 1000 ms from scanning start time.

Maximum number of retries: 5

2 Bluetooth LE Connection

Attempt connection between phone as central and device as peripheral.

Measure connection time from start to successful completion.

Pass if the connection is established successfully within 1000 ms.

Maximum number of retries: 5

3 Bluetooth LE Discovery Pass if all GATT services from device under test are read by phone within 1200 ms.
4.1 GATT Operations Read Only Length 1
  • Type = hex
  • Length = 1
  • Read value = 0x55

Pass if expected value is read by phone.

4.2 GATT Operations Read Only Length 255
  • Type = hex
  • Length = 255
  • Properties = Read
  • Value = 0-254

Pass if phone reads all 255 bytes match the value described above.

4.3 GATT Operations Write Only Length 1
  • Type = hex
  • Length = 1
  • Properties = Write

Phone writes 1 byte to the characteristic with value 0.

Pass if the operation does not generate an error on the phone.

4.4 GATT Operations Write Only length 255
  • Type = hex
  • Length = 255
  • Properties = Write

Phone writes 255 bytes to the characteristic with value 0.

Pass if the operation does not generate an error on the phone.

4.5 GATT Operations Write Without Response Length 1
  • Type = hex
  • Length = 1
  • Properties = Write Without Response

Phone writes 1 byte to the characteristic with value 0.

Pass if the operation does not generate an error on the phone.

4.6 GATT Operations Write Without Response Length 255
  • Type = hex
  • Length = 255
  • Properties = Write Without Response

Phone writes 255 bytes to the characteristic with value 0.

Pass if the operation does not generate an error on the phone.

4.7 GATT Operations Notify length 1
  • Type = hex
  • Length = 1
  • Properties = Notify
  • Value = 0x55

Phone subscribes to notifications on the characteristic which shall trigger a one-shot 100 ms timer on the embedded firmware.

Once the timer expires, the notification shall be sent with defined value.

Pass if the subscription is done successfully, notification is received within 300 ms after subscribing, and the value is 0x55.

Maximum number of retries: 5

4.8 GATT Operations Notify length MTU - 3
  • Type = hex
  • Length = 255
  • Properties = Notify

Phone subscribes to indications on the characteristic which shall trigger a one-shot 100ms timer on the embedded firmware.

Once the timer expires, the indication shall be sent.

The amount of bytes sent shall be MTU - 3 bytes (maximum supported by an indication) where the first byte value is 0 and the subsequent bytes will previous one +1 (e.g., byte 0 value is 0, byte 1 value is 1,... and byte N value is N).

Pass if the subscription is done successfully, indication is received within 300 ms after subscribing and the value matches as described above.

Maximum number of retries: 5

4.9 GATT Operations Indicate Length 1
  • Type = hex
  • Length = 1
  • Properties = Indicate
  • Value = 0x55

Phone subscribes to indications on the characteristic which shall trigger a one-shot 100 ms timer on the embedded firmware.

Once the timer expires, the indication shall be sent with defined value.

Pass if the subscription is done successfully, indication is received within 300 ms after subscribing and the value is 0x55.

Maximum number of retries: 5 times

4.10 GATT Operations Indicate length MTU - 3
  • Type = hex
  • Length = 255
  • Properties = Indicate

Phone subscribes to indications on the characteristic which shall trigger a one-shot 100 ms timer on the embedded firmware.

Once the timer expires, the indication shall be sent.

The amount of bytes sent shall be MTU - 3 bytes (maximum supported by an indication) where the first byte value is 0 and the subsequent bytes will previous one +1 (e.g., byte 0 value is 0, byte 1 value is 1,... and byte N value is N).

Pass if the subscription is done successfully, indication is received within 300 ms after subscribing and the value matches as described above.

Maximum number of retries: 5

5.1 Characteristic Length 1
  • Type = hex
  • Length = 1
  • Properties = Read, Write
  • Value = 0x00

Write 1 byte with value 0x55 then read value back.

Pass if value read is 0x55.

5.2 Characteristic Length 255
  • Type = hex
  • Length = 255
  • Properties = Read, Write
  • Value = 0x00 on all bytes

Phone writes 255 bytes where the first byte value is 0 and the subsequent bytes will previous one +1 (e.g., byte 0 value is 0, byte 1 value is 1,... and byte 254 value is 254). Read values back.

Pass if all 255 bytes match the value described above.

5.3 Characteristic Length Variable 4
  • Type = hex
  • Length = 4
  • Variable Length = True
  • Properties = Read, Write
  • Value = 0x00 (only 1 byte so that length is also 1)

Phone writes 1 byte with value 0x55 and read back.

Pass if get only 1 byte with value0x55.

Phone writes 4 bytes with value 0x66 and read back.

Pass if get 4 bytes with value 0x66.

5.4 Characteristic Const Length 1
  • Type = hex
  • Length = 1
  • Properties = Read, Write, Const
  • Value = 0x55

1: Phone reads 1 byte.

Pass if the value is 0x55.

2: Phone writes value 0.

Pass if ATT error code 0x03 "Write Not Permitted" is received.

5.5 Characteristic Const Length 255
  • Type = hex
  • Length = 255
  • Properties = Read, Write, Const
  • Value = The first byte value is 0 and the subsequent bytes will previous one +1 (e.g., byte 0 value is 0, byte 1 value is 1 ... and byte 254 value is 254)

1: Phone reads 255 byte.

Pass if the value is as described above.

2: Phone writes value 0 to all bytes.

Pass if ATT error code 0x03 "Write Not Permitted" is received.

5.6 Characteristic User Len 1
  • Type = user
  • Length = 1
  • Properties = Read, Write

Phone writes 1 byte with value 0x55 then reads value back.

Pass if value read is 0x55.

5.7 Characteristic User Len 255
  • Type = user
  • Length = 1
  • Properties = Read, Write

Phone writes 255 bytes where the first byte value is 0 and the subsequent bytes will previous one +1 (e.g., byte 0 value is 0, byte 1 value is 1,... and byte 254 value is 254).

Pass if value read is as described above.

5.8 Characteristic User Len Variable 4
  • Type = user
  • Length = 4
  • Variable Length = True
  • Properties = Read, Write

1: Phone writes 1 byte with value 0x55 and read back.

Pass if get only 1 byte (so the length is 1) with value 0x55.

2: Phone writes 4 bytes with value 0x66 and read back.

Pass if get 4 bytes (so the length is 4) with value 0x66.

6.1 OTA update OTA update - Acknowledged write

Mobile (OTA client) connects to target device with name "IOP Test".

Mobile shows pop-up, user chooses application gbl file OR Mobile has inbuilt gbl file for updating.

Mobile requests target device to reboot into DFU mode.

Mobile sends image to target boards with acknowledged data transfer (write).

Upload is finished and connection closed, AppLoader on the device reboots back to normal mode.

Mobile scans and connect with target device.

Pass: there is no error in mobile side and connect to device with name "IOP Test Update" at the end which is the name in the new image.

6.2 OTA update OTA update - Unacknowledged write

Mobile (OTA client) connects to target device with name "IOP Test Update".

Mobile show pop-up, user chooses application gbl file OR Mobile has inbuilt gbl file for updating.

Mobile requests target device to reboot into DFU mode.

Mobile sends image to target boards with unacknowledged data transfer (write without response).

Upload is finished and connection closed, AppLoader reboots back to normal mode.

Mobile scans and connect with target device.

Pass: there is no error in mobile side and connect to device with name "IOP Test" at the end.

7 Throughput Throughput - GATT Notification

PHY bitrate: 1Mbps

Connection interval request: 15 ms

Number of packets per connection interval for notification:

  • Android - 6 packets
  • iOS - 4 packages [Max supported by iOS]

The parameters are set as above and device sends the data to the mobile. Mobile computes the throughput (Bytes/S).

Pass if there is successful data transfer between the device and mobile.

See Test Results for more details.

8.1 Security and Encryption Security - Pairing
  • Type = hex
  • Length = 1
  • Properties = Encrypted_Read
  • Value = 0x55

Phone writes 1 byte to the characteristic with value 01.

Mobile changes secure mode on the device to be just works, disables bonding and disconnects with device.

Mobile pairs with device in just works mode.

Mobile reads a pre-set characteristic value (0x55) with encrypted read property.

Pass if there is no error and read value matches the pre-set value (0x55).

8.2 Security and Encryption Security - Authentication
  • Type = hex
  • Length = 1
  • Properties = Authenticated_Read
  • Value = 0x55

Phone writes 1 byte to the characteristic with value 02.

Mobile changes secure mode on the device to authenticated and disconnect with device.

Mobile pairs with device with authenticated mode by entering passkey as 123456.

Mobile reads pre-set characteristic value (0x55) with authenticated read property.

Pass if there is no error and read value matches the pre-set value (0x55) after pairing.

8.3 Security and Encryption Security - Bonding
  • Type = hex
  • Length = 1
  • Properties = Bonded_Read
  • Value = 0x55

Phone writes 1 byte to the characteristic with value 03.

Mobile changes secure mode in firmware to bonded and disconnects with device.

Mobile pairs with device with bonded mode by enter passkey is 123456.

Mobile reads pre-set characteristic value (0x55) with bonded read property.

Pass if there is no error and read value matches the pre-set value (0x55) after pairing.