Post

Replies

Boosts

Views

Activity

Example for AccessorySetupKit bluetoothTransportBriding
Hi there! I'm developing a dual-mode bluetooth accessory and would like to pair it through AccessorySetupKit. I'm using an ESP32 with Bluekitchen btstack. This supports CTKD, which seems to be a requirement for the Bluetooth transport bridging according the WWDC19 session 901. I've been in contact with the btstack developer and verified that I can get the device to generate an LTK for the classic transport when reading an encrypted attribute. I'm not able to get this to work with the bluetoothTransportBriding option with AccessorySetupKit though. What I've found so far is that if I omit the .bluetoothTransportBriding option during pairing I will get a pairing request when I read an encrypted attribute after connecting with the CBConnectPeripheralOptionEnableTransportBridgingKey option. If I accept this request it seems like the system automatically brings up the A2DP profile. However if I include .bluetoothTransportBriding and/or .bluetoothPairingLE this option does not pop up, but the system does not bring up the A2DP profile. In this case things seem to end up in a weird situation where the device doesn't show up for pairing in Bluetooth Settings either, making it impossible to manually connect for A2DP. Based on the AccessorySetupKit example from WWDC24 I've created a dice accessory firmware for ESP32 using btstack. The code for this is available here: https://github.com/ljodal/esp32-btstack-ctkd-test I've also tweaked the AccessorySetupKit example app for iOS to add the ASAccessory.SupportOptions. The code for that is available here: https://github.com/ljodal/accessorysetupkit-ctkd-test Is there any documentation available anywhere on what is expected of the device for Bluetooth Transport Bridging to work with AccessorySetupKit?
0
0
151
Jul ’25
AccessorySetupKit - Accessory not found on some iPhones
Hi there, we're developing a Bluetooth LE device and are using the AccessorySetupKit to connect the device to our iOS application. We are a registered member of the Bluetooth SIG and are advertising our company id over BLE. Setting up the device works on most iPhones we've tested with, but not all. Here's an example of some of the devices we've tested: iPhone 12 mini: Not working, tried both iOS 18.1.1 and 18.1.1 iPhone 13 mini: Working, iOS 18.1.1 iPhone 15: Not working, iOS 18.1.1 iPhone 15: Works now, didn't work a few weeks ago iPhone 15 Pro: Works iPhone 16 Pro: Works Looking through the logs of the iPhone 12 mini while scanning I see some things that might be related in the logs (I've removed potentially identifying data). It seems to me that it's detecting the device, but not showing it in the UI: error 11:43:54.792877+0100 bluetoothd canSessionScanForMFGRData <our company ID> <private> there:1 default 11:43:54.795685+0100 deviceaccessd ### appBundleHasASKEnabled <our app bundle> supports Bluetooth default 11:43:54.795730+0100 deviceaccessd ### _reportDiscoveredBTDevice DADevice: ID <removed ID>, name '<ASPickerDisplayItem.name>', btID <removed ID>, flags AccessorySetup, type Hi-Fi Speaker <CBPeripheral: 0x4b8164540, identifier = <removed ID>, name = (null), mtu = 23, state = disconnected> has no bluetooth name We get no callbacks while the picker UI is displayed. Opening the picker on another device at the same time immediately shows our accessory. This seems like a bug in the AccessorySetupKit too me, but I'm not sure. Could we be doing something wrong?
5
0
708
Dec ’24