arduino / arduino/ArduinoCore-arc32

iOS doesn't see changes to Bluetooth services and characteristics between sketches

Open
#96 35 comments 0 reactions 0 assignees View on GitHub
bug Pending Implementation
Dominant language
C
Stars
330
Forks
281
PR merge metrics
No merged PRs in 30d

Description

iOS doesn't see changes to Bluetooth services and characteristics between sketches

**To duplicate**

1) Run example CurieBle -> LED
2) Use [LightBlue](https://itunes.apple.com/us/app/lightblue-explorer-bluetooth/id557428110?mt=8) from iPhone to connect to LED
3) Run example CurieBle -> ButtonLED
4) Use LightBlue from iPhone to connect to ButtonLED (the old LED name will be show)

**Problem: The old LED characteristics are also shown**

5) Turn Bluetooth off and on on the iPhone
6) Use LightBlue from iPhone to connect to ButtonLED

The correct service and characteristics should now be shown

**Background**

The original problem was that descriptors (0x2901) added to existing sketches were not showing up in LightBlue. This has not been a problem when using other libraries such as [BLEPeripheral](https://github.com/sandeepmistry/arduino-BLEPeripheral) or [bleno](https://github.com/sandeepmistry/bleno). The steps above are an easier way to duplicate the issue without adding descriptors.

**Software/Hardware**

Arduino 101
Arduino IDE 1.6.7 on OS 10.10.5
iOS 9.2 (13C75) on iPhone 6s

**Possible solution**

iOS is expecting Service Changed 0x2a05 to be implemented on the Generic Attribute Service 0x1801.

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the issue with the CurieBle -> LED and CurieBle -> ButtonLED examples using LightBlue on iPhone. Start by tracing the BLE implementation used by those examples and the Generic Attribute Service 0x1801, then verify that switching sketches exposes the current service and characteristics without toggling Bluetooth.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, ios
Domain
embedded-iot
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.