Assign Bluetooth Low Energy (BLE) MAC Address - bluetooth

I'll like to know if Bluetooth Low Energy (BLE) devices are assign MAC address according to company-identifiers document or is that more of a suggestion to follow?
In the document Core_V4.0.pdf in section 1.2 BLUETOOTH DEVICE ADDRESSING it explain about how the address is made up of company_assigned and company_id, is it like WIFI MAC address that are assigned to each company or I just need to make sure the address I generate are unique?

Related

Is just the BD_ADDR of responding devices shared with the master during inquiry?

Is the Bluetooth address exchanged between two Bluetooth devices if no connection is made yet?
As when a device is in discovery mode, and you see for example a tv, headphones, or a different computer show up, is the Bluetooth address of that device being shared with the device making the inquiry, or are the others also getting the Bluetooth address of the inquiring device?
Alternatively, is the Bluetooth address only shared upon selection of the device for connection?
Thanks!
Edit: spelling
Advertising devices broadcast one-way. They do not know what devices have discovered them. Scanning for advertisements is passive. It does not require sending any packets, so neither the advertising device, nor other scanners in the area, will be aware of the scanning device.
Note that Bluetooth addresses are quite complex and varied, so how they are shared is not trivial. Devices have many kinds of addresses and change what they publicize frequently. But to the question of when an address (rather than the address) is shared, that is during connection.

Uniquely identifying bluetooth devices

I am new to bluetooth development and recently started reading about it.
I am trying to develop ble devices scanner and I need to provide an option to mark specific devices as trusted or untrusted.
I am able to get list of discoverable ble devices using hcitool lescan. But bluetooth addresses returned here can be random addresses. I need to uniquely identify trusted neighbouring ble devices to mark them as trusted even after changing random address. Static/public bluetooth address seems to be the only option to uniquely identify ble devices.
AFAIK static bluetooth address and IRK are shared during pairing. So after pairing with trusted BLE devices, I can get static bluetooth address and IRK which can be used for uniquely identifying trusted bluetooth devices. Also post pairing device can be uniquely identified when resolvable random address is used by paired ble device.
gatttool can be used to connect to scanned BLE devices. But how can I get the static/public address after I connect to BLE device (assuming gatttool connect will perform pairing).
I am not able to find any out of the box tool like hcitool which can be used to pair to get static bluetooth address and uniquely identify when trusted ble device is scanned with resolvable random address.
Is there any tool which can be used to uniquely identify trusted bluetooth device?

Bluetooth BLE Beacon, Advertise

when starting with this Bluetooth low Energy (BLE) development, i come across some questions:
with my development board, I can send out advertisement beacons, they are recognized by Windows 7 (Bluetooth, Add Device). The demo application on the board sends out beacons which are in length <31 bytes. In this data there is included the data for length, an ID byte and a string.
But how is Windows able to identify the Bluetooth device address (BD) and the name of my device? This data is not included in the advertisement beacon, but I cannot find any document which describes how this data is transported.
So the relevant data is:
the Beacon .. the BD address .. the device name
The Bluetooth MAC address is sent in the header of any packet a BLE device transmits. This is added at the hardware layer, so you probably do not realize it is happening.
Similarly, when a BLE device is configured with a local name, it is transmitted by the chip automatically in a separate advertisement packet. Since this packet also had a header with the MAC address, the receiving chip uses this address to align the received name/MAC with any other packet received for that MAC.
This is how the Windows device knows the name and MAC for your received advertisements.

How can I programmatically get the Bluetooth address of an iPhone Device in iOS7

I want to determine the BLUETOOTH ADDRESS for an iPhone or iPad from within an app on said device. But I didn't find any API that will return the BLUETOOTH ADDRESS or name of a device.
In document it is written that "In iOS 7 and later, if you ask for the MAC address of an iOS device, the system returns the value 02:00:00:00:00:00", but there is no documentation regarding BLUETOOTH ADDRESS.
Please help me for finding the BLUETOOTH ADDRESS in iOS7.
It is not possible to get the Bluetooth Address in iOS 7.

Bluetooth protocol over wifi?

I'm looking to implement the Bluetooth protocol over a physical Wi-Fi based transport, if that makes sense.
Basically my phone has Bluetooth, and my laptop has a Wi-Fi card (802.11a/b/g).
I know that Wi-Fi operates over the range 2.412 GHz - 2.472 GHz, and that Bluetooth operates over the range 2.402 GHz - 2.480 GHz.
I couldn't help but notice the overlap here. So my questions are:
What sort of low-level APIs would I need (preferably in C, on Windows) in order to send a signal out at certain frequencies on the Wi-Fi card?
Would I be able to implement a Bluetooth stack on top of this?
So basically, can I transmit Bluetooth using my Wi-Fi card as essentially a radio transmitter?
Thanks
Implementing the Bluetooth protocol over a physical Wi-Fi based transport does make sense!
Bluetooth high speed (v3.0) defines the possibility to use alternate MAC/PHY layers, known as AMP feature. The L2CAP and higher layer protocols from Bluetooth can be transmitted over a Wi-Fi MAC/PHY layer rather than a Bluetooth MAC/PHY layer with a resulting higher throughput. Some products are on the marked supporting this - look for 'Bluetooth High Speed', AMP or Bluetooth v3.0 support.
No, you can't do this. Bluetooth devices are typically wrapped up all in one chip. Plus, they use completely different modulation techniques. No low-level anything is going to allow you to transmit anything different, unless you are flashing the device. Even then, it may not get you much closer.
Bluetooth Modulation Information:
http://www.palowireless.com/infotooth/tutorial/radio.asp and http://classes.engr.oregonstate.edu/eecs/spring2003/ece44x/groups/g9/jon_gillen/white_paper_jon.pdf
About the only thing you can share between WiFi and Bluetooth devices is the antenna. (Assuming only one device is using it at a time... don't blast 32mW into the receiver of the other radio!) The radio itself is all wrapped up into the same chip. The same is generally true for WiFi.
Bluetooth and Wifi have different phy layer protocols and thats what is coded into their chips, hence you can't use one chip to transmit packets of the other protocol.
Moreover most of the chip vendors, do not expose any RF logic.
Technically yes but there are some things to consider such as the pre existing coding on the chip and if the chip can support Bluetooth coding as well as wifi coding, I mean if you have two separate wifi chips go ahead and try but be warned I tried and nearly killed my computer because of preexisting copyright protection coding on other parts of my pc that prevented any programs on the chip from starting until I reset the chip to factory defalts.

Resources