Many BLE devices have BR/EDR Controller Mode - LE + BR/EDR Host Mode in their Flags. Does this mean that this Device is also a classic Bluetooth device?
BR/EDR is the technical term for what you call bluetooth classic.
With "in their Flags" you probably mean in the advertisement? This would mean that the device at least reports, that it also implements bluetooth classic, yes.
Related
I am programming a device which uses BR/EDR and BLE. BR/EDR is mostly used for audio data while BLE should work as control channel. Access to the used BLE characteristic returns a gatt_status_insufficient_authentication if and only if the central (smart phone) is not bonded. At least, that is what I want.
Moreover, if BLE bonding is triggered, I also get a BR/EDR bonding by Cross Transport Key Derivation (CTKD). Ok.
IF I do BR/EDR pairing from the phones pairing menu, this CTKD does not work. How could this work?
Or is there a way to enforce BLE pairing instead BR/EDR pairing?
Regards
In the Advertising section of a BLE, The Bluetooth SIG Define the "Flags"
which has these plus a few more.
BR/EDR Not Supported
Simultaneous LE and BR/EDR to Same Device Capable (Controller)
Simultaneous LE and BR/EDR to Same Device Capable (Host)
I am having an issue on a CSR chipset design that does not support GATT over BR/EDR.
Apple works great, as it always connects to LE.
..but android devices persistently try to connect GATT over BR/EDR if the audio is already up; therefore fail because CSR cant handle BR/EDR transport for GATT.
I am thinking these flags are at the core of the problem.
In CSR's demo code they do not set "any" of the above flags. I have had limited success with my problem on some handsets by setting the "Not Supported" flag.
The issue is the other two flags. How does Controller/ Host relate to other LE terms. For example Central/Peripheral or later Master/Slave.
I dont know what flags to set for my use case. Any suggestions welcome?
You can use a Static Random address for all LE operations. That way the Android device thinks it's a different device than when talking over Bluetooth Classic since that uses the public BD_ADDR.
Or, one variant of the connectGatt takes a transport parameter which you can set to TRANSPORT_LE to force communication over BLE.
If your device supports BLE and BR/EDR at the same time you should set these flags:
BR/EDR Not Supported=0
Simultaneous LE and BR/EDR to Same Device Capable (Controller)=1
Simultaneous LE and BR/EDR to Same Device Capable (Host)=1
If the flag data is missing completely, it's the same as if all fields are zero.
I am new to Bluetooth technology and I came across this term "Bluetooth Smart Ready". I understand that this term means that both SPP and low energy are supported. But Can anyone help me understand what is it exactly.
Does Smart Ready refer to a Bluetooth profile like for example SPP or it is some capability of a device?
Thanks in advance.
Bluetooth Smart and Bluetooth Smart Ready were new branding designations promoted by the Bluetooth SIG for Bluetooth 4.0. That lead to 3 different designations for devices:
Bluetooth devices - Pre-4.0 devices.
Bluetooth Smart devices - Basically Bluetooth low energy devices such as peripherals (think heart monitors, fitness equipment, etc.).
Bluetooth Smart Ready devices - Basically devices that could support both Bluetooth low energy and Bluetooth BR/EDR (Classic Bluetooth).
According to the Bluetooth SIG brand usage guide published May 2016, that terminology has been deprecated.
You almost answered your own question here:
I understand that this term means that both SPP and low energy are supported.
In what case would you need a device to support both? A Computer, or mother device which would possibly talk with other devices that may be based on Bluetooth 4.0, such accessories as speakers, headphones, fitness accessories, and even medical tools such as heart-rate monitors and electronic thermometers, etc.
It has got nothing to do with the profile it is configured in, and its more about compatibility.
To put it in simple words, Bluetooth Smart Ready is compatible to communicate with Classic Bluetooth device, Bluetooth Smart device and and Bluetooth Smart Ready device.
On the other hand, A Classic Bluetooth device is able to communicate with other Classic Bluetooth devices and Bluetooth Smart Ready devices.
And, lastly a Bluetooth Smart device can only communicate with Bluetooth Smart and Bluetooth Smart Ready device.
Does Apple allow dual mode BLE connectivity in iOS? It seems that if BLE iOS apps could communicate to dual mode Bluetooth devices in BR/EDR mode, one wouldn't need to join the MFI program.
The CoreBluetooth library allows communication with a BLE peripheral using the GATT profile only.
The use of other profiles (aside from generic HFP/A2DP/AVRCP which is supported by AVFoundation and keyboards which have native HID support) requires going through the MFI program. So for example SPP.
And yes, iOS does not prevent using BLE for data communication while using an audio profile to the same device at the same time.
As of iOS 13 you can connect to both BLE and BR/EDR with CoreBluetooth, as introduced here.
Is it possible for the Bluetooth dual-mode device to be discoverable by classic bluetooth at the same time as being pairable with BT LE devices?
It's ok if the device can not operate with both at the same time, but should I switch the chip between those modes really?
I just can not find the answer in the BT 4 Core Specification
Yes, A dual mode device can be discoverable by classic Bluetooth while being connected to a LE device.
The device can also be connected to both classic and LE at the same time (device will time multiplex so as to maintain operations on both Classic and LE simultaneously)